我想有一个Maven目标触发java类的执行。 我正在尝试通过以下行迁移Makefile : neotest: mvn exec:java -Dexec.mainClass="org.dhappy.test.NeoTraverse" 我希望mvn neotest生产目前make neotest东西。 exec插件文档和Maven Ant任务页面都没有任何简单的例子。 目前,我在: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1</version> <executions><execution> <goals><goal>java</goal></goals> </execution></executions> <configuration> <mainClass>org.dhappy.test.NeoTraverse</mainClass> </configuration> </plugin> 不过,我不知道如何从命令行触发插件。
我有几个项目由maven构build,我想分享一些共同的属性 – spring的版本,MySQL的驱动程序版本,SVN基地url等 – 所以我可以更新一次,它会反映在所有项目。 我想有一个超级POM的所有属性,但如果我改变了一个问题,我需要增加它的版本(并更新所有的POM从它inheritance),或从所有开发人员的机器删除它我不想这样做。 可以在pom外部指定这些参数吗? 我仍然想在父pom中有外部位置定义。
我安装了Eclipse的Maven插件,然后出现如下错误: 请确保eclipse.ini中的-vm选项指向JDK 如何使用-vm选项指向eclipse.ini中的JDK?
我如何告诉Maven 2加载Servlet 3.0 API? 我试过了: <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency> 我使用http://repository.jboss.com/maven2/但是什么样的存储库是正确的? 附录: 它适用于整个Java EE 6 API的依赖关系和以下设置: <repository> <id>java.net</id> <url>http://download.java.net/maven/2</url> </repository> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> 我宁愿只添加Servlet API作为依赖关系,但“Brabster”可能是正确的,单独的依赖关系已被Java EE 6configuration文件取代。 有一个来源证实了这个假设吗?
我有一个Eclipse的安装与m2eclipse和颠覆。 我已经从svn导入了一个maven2项目。 但是,我得到了一大堆工件丢失的错误消息(例如:缺less工件org.springframework:spring-test:jar:3.0.1.RELEASE:test)。 如果我查看我的存储库,我看到那里的jar文件,但它们有一个额外的扩展名.lastUpdated。 为什么maven追加.last更新到jar子? 更重要的是:我该如何解决这个问题? 没有提到在我的POM中lastUpdated的types。
我有一个要求用Maven创buildjar文件,但是他们需要用一个“foobar”扩展名来安装到版本库中,如果他们有自己的包装types,那么我们可以通过包装来识别这些工件。 我可以设置一个新的包装types来做到这一点?
有没有一种方法(我的意思是如何)在maven项目中设置系统属性? 我想从我的testing和我的webapp(本地运行)访问属性,我知道我可以使用Java系统属性。 我应该把它放在./settings.xml或类似的东西吗? 上下文 我采取了一个开源项目,并设法改变数据库configuration使用JavaDB 现在,在JavaDB的jdbc url中,可以将数据库的位置指定为完整path(请参阅: 另一个问题 ) 或者是一个系统属性: derby.system.home 我的代码已经工作了,但是目前全部都是硬编码的: jdbc:derby:/Users/oscarreyes/javadbs/mydb 我想删除完整的path,离开它: jdbc:derby:mydb 要做到这一点,我需要指定系统属性( derby.system.home )maven,但我不知道如何。 testing是使用junit(我没有在pom.xml中看到任何插件)执行,并且web应用程序与jetty插件一起运行。 在命令行中指定系统属性似乎适用于jetty,但我不确定这是否是实际的东西(准许其他用户可以从eclipse / idea / whatever运行它)
这是我的一般问题: 我的项目P取决于A取决于B取决于C取决于D的版本1.0.1。 D版本1.0.1存在问题,我想强制使用另一个模块。 我不知道如何在我的项目的POM中声明这个,因为我没有直接添加对D的依赖。 这是C声明对D的依赖 重要提示:在这种情况下,不仅版本改变,而且组和工件也是如此。 所以这不仅仅是重写依赖版本的问题,而是排除一个模块并包含另一个模块。 在具体的情况下,D是StAX,其1.0.1有一个bug 。 根据bug的说明,“通过用stax-api-1.0-2(maven GroupId = javax.xml.stream)”replacestax-api-1.0.1(maven GroupId = stax)正在尝试这一点。 因此,D = stax:stax-api:jar:1.0.1和C = org.apache.xmlbeans:xmlbeans:jar:2.3.0 我使用maven 2.0.9以防万一。 mvn依赖项的输出:树“ mvn dependency:tree [..snip..] [INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile [INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile [INFO] | | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile [INFO] | | | \- stax:stax-api:jar:1.0.1:compile 在我的项目的POM中,我对“A”具有以下依赖关系: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.6</version> […]
我有一个ivy.xml包含 <dependencies> <dependency org="commons-lang" name="commons-lang" rev="2.4"/> <dependency org="foo-bar" name="superwidgets" rev="1.5"/> </dependencies> 整个superwidget的东西托pipe在http://example.com/m2/的Maven仓库中。 常春藤文档提到了parsing器 ,但它似乎假定一个常春藤库。 我怎样才能添加一个非官方的Maven仓库到我的常春藤设置只能由一个模块使用? (或者换句话说,在ivy中对应于maven的<repository>标签?)没有什么奇特的,所以我期望在ivy.xml中有一行代码。
我遇到麻烦时,我的Web应用程序所依赖的一个jar子试图从jar中加载属性文件。 这是jar中的代码。 static { Properties props = new Properties(); try { props.load(ClassLoader.getSystemResourceAsStream("someProps.properties")); } catch (IOException e) { e.printStackTrace(); } someProperty = props.getProperty("someKey"); } 属性文件位于Maven项目的“src / main / resources”目录下。 当我在Eclipse的junittesting中运行这个代码时,它执行得很好。 当使用Maven将项目构build到jar中,并将其作为依赖项包含在webb应用程序中时,将无法find属性文件。 我知道属性文件是在依赖jar的基础目录,我不知道如何解决这个问题。 请帮忙!