Tag: maven

如何从Maven POM中的文件设置构建属性?

我需要从项目外部的位置读取和过滤属性文件,比如$ {user.home} /my.properties。 此属性文件如下所示: res.dir=/my/stuff/here resource.dir=C:/${res.dir} bin.dir=${resource.dir}/bin cfg.dir=${resource.dir}/config 我必须在我的构建和运行时的应用程序中执行此操作。 使用PROPERTY标记在Ant中很容易做到这一点。 但是,在Maven中似乎没有一个好方法。 到目前为止,我已经尝试了Maven 标记,Maven 标记以及其他标记的各种排列。 我的构建失败或unit testing失败,或两者兼而有之。 如果我将这些属性硬编码到POM中,一切正常,所以我知道问题只是阅读属性。 我查看了properties-maven-plugin,但插件似乎不再被维护。 有没有办法做到这一点?

使用Maven 3 API进行编程构建

在你问为什么我可以产生一个进程来执行mvn之前,我希望通过Maven API执行一个Maven构建,这样我就可以收集关于构建中发生的事情,产生的工件等的信息等。依赖于org.apache.maven:maven-core:jar:3.0.4 ,我写了以下方法试图做这样的事情: public static void build(File directory, File pom) { Maven maven = new DefaultMaven(); MavenExecutionRequest exec = new DefaultMavenExecutionRequest(); exec.setBaseDirectory(directory); exec.setPom(pom); MavenExecutionResult result = maven.execute(exec); MavenProject proj = result.getProject(); Artifact art = proj.getArtifact(); System.out.println(art); } 但是,由于空指针exception,此代码在maven.execute失败。 由于DefaultMaven私有字段未被初始化,因此这些空指针exception基本上无处不在。 它们都用@Required注释,所以我猜这与Plexus有关。 如何成功使用Maven来执行这样的构建?

为什么Maven项目默认与J2SE-1.5绑定?

如果我基于Eclipse没有原型Maven项目创建默认空,它将基于J2SE-1.5 。 我将手动更改构建路径条目和代码合规性。 为什么? 如何使它成为其他?

使用Felix和Maven创建完整的OSGi应用程序

我有一组使用Maven构建的OSGi包,我想知道是否有可用的Maven插件允许我执行以下操作: 指定要包含在分发中的捆绑包和/或指定单个捆绑包并解析依赖关系。 构建完整的框架分发。 我的意思是单个zip文件包含所需的所有包,以及felix的正确目录结构,以便用户只需解压缩文件并输入“java -jar bin / felix.jar”。 我做了一些谷歌搜索,除了appassembler我没有找到任何有希望的东西。 有没有人想出一个好的解决方案? 更新这里是我想要完成的一个例子。 example-parent\ bundle-one bundle-two bundle-three assembly-one assembly-two 在assembly-one将包括bundle-one和bundle-two和assembly-two情况下,包括bundle-two和bundle-three或其任何组合。 然后,当您构建项目时,您将获得两个zip文件,一个用于assembly-one一个用于assembly-two在自包含的felix安装中包含相应的包。 例如: assembly-one.zip\ bin\felix.jar bundle\bundle-one, bundle-two, plus bare min felix bundles conf\any configuration files I need 希望这能提供有关我正在努力完成的更多信息。 我想这与Eclipse做feature.xml的方式类似,但当然不使用Eclipse。

如何在多模块项目中配置Maven shade插件?

大家! 我一直试图使用Maven Shade插件获取jar,但我仍然没有获得成功:( 这是我的项目结构: MainModule -Module1 -src -pom.xml -Module2 -src -pom.xml -pom.xml Module1(pom.xml): MainModule com.plugintest 1.0-SNAPSHOT 4.0.0 Module1 Module2(pom.xml): MainModule com.plugintest 1.0-SNAPSHOT 4.0.0 Module1 MainModule(pom.xml): com.plugintest MainModule pom 1.0-SNAPSHOT Module1 Module2 org.apache.maven.plugins maven-shade-plugin 2.2 package shade 根据这段代码,我得到2个jar文件(Module1-version.jar和Module2-version.jar)。 但这不是我想要的。 我希望获得1个jar文件(MainModule-version.jar),其中包含另一个(Module1和Module2)。 请告诉我,为什么这个Shade插件不起作用?

“检测到必需的基于文件名的自动模块。”警告意味着什么?

在我的多模块项目中,我只为少数模块创建了module-info.java 。 在使用maven-compiler-plugin:3.7.0我收到了下一个警告: [警告] *检测到必需的基于文件名的自动模块。 请不要将此项目发布到公共工件库! * 这是什么意思? 那是因为我只有几个模块与module-info.java而不是整个项目?

与maven有JAVA_HOME不一致问题

我即将发布一个项目但似乎JAVA_HOME不一致。 也许它被其他地方覆盖了? 我使用的是ubuntu 14.04,我有openjdk-7,java-7-oracle,java-8-oracle。 使用update-java-alternatives设置了默认java java -version java version “1.8.0_25” Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) mvn -version给出以下输出 Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T17:37:52+00:00) Maven home: /usr/share/maven3 Java version: 1.8.0_25, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-oracle/jre Default locale: en_US, platform encoding: UTF-8 OS name: “linux”, version: “3.13.0-39-generic”, […]

在jenkins中配置maven项目时获取exception

无法使用Jenkin触发成功构建。 Jenkin Version : 2.46.1 Maven Version :3.5.0 Java version : jdk1.7.0_67 我在Maven上用Java创建了一个简单的项目。 现在,当我将它与Jenkin集成并立即点击构建时。 构建失败并获得一些exception。 java.lang.reflect.InvocationTargetException 我附上了日志细节。 日志明细: Started by user sougata das Building in workspace C:\Users\sougatadas\workspace\TestNGTutorial Parsing POMs Established TCP socket on 50831 [TestNGTutorial] $ “C:\Program Files\Java\jdk1.7.0_67/bin/java” -cp “C:\Users\sougatadas\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven33-agent-1.8.1.jar;F:\apache-maven-3.5.0-bin\apache-maven-3.5.0\boot\plexus-classworlds-2.5.2.jar;F:\apache-maven-3.5.0-bin\apache-maven-3.5.0/conf/logging” jenkins.maven3.agent.Maven33Main F:\apache-maven-3.5.0-bin\apache-maven-3.5.0 “C:\Users\sougata das\.jenkins\war\WEB-INF\lib\remoting-3.7.jar” “C:\Users\sougata das\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven33-interceptor-1.8.1.jar” “C:\Users\sougata das\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.8.1.jar” 50831 channel started Executing Maven: -B -f […]

如何将Mercurial,Maven和Eclipse结合使用?

我目前正在一个由5名大学同事组成的团队中开展Java项目。 实际上,我们将在接下来的几天内完成规划阶段,然后开始实施。 对于该项目,我们必须使用Mercurial(通过Bitbucket.org)和Apache Maven。 我们想将Eclipse用作IDE。 我知道如何使用Mercurial,我已经阅读了一些关于Maven的文章和指南。 我不明白的是我们应该如何在协作中使用这些工具。 应该在存储库中放置什么? 整个Eclipse项目? 或者只是源文件和Maven的pom.xml? 如果是后者,工作会话会是什么样子? 拉动文件,使用mvn eclipse创建一个Eclipse项目:eclipse,代码一段时间并提交/推送到repo? 我负责创建项目结构,所以我和我的同事也可以开始开发。 但我真的不知道如何开始。 如果使用Maven不是强制性的,我只需将Eclipse项目放入存储库即可。 但是不得不使用它,现在我很困惑如何影响一切。

使用rpm-maven-plugin的多模块Web应用程序示例?

有没有人知道使用Maven构建到RPM的任何Web应用程序? RPM Maven插件提供了构建RPM的function,但缺少文档。 具体来说,我正在寻找一个包含多个模块的示例,即第8章“多模块项目” ,来自“Maven by Example”系列。 只有一个模块的示例是: 4.0.0 com.mycompany.app my-webapp war 1.0-SOME-SNAPSHOT my-webapp http://maven.apache.org /opt/tomcat6 ${rpm.install.basedir}/webapps ${rpm.install.basedir}/lib junit junit 3.8.1 test javax.servlet servlet-api 2.5 provided javax.servlet.jsp jsp-api 2.1 provided javax.servlet.jsp.jstl jstl-api 1.2 org.glassfish.web jstl-impl 1.2 org.codehaus.jackson jackson-mapper-asl 1.8.1 org.codehaus.mojo rpm-maven-plugin 2.1-alpha-1 true attached-rpm My Company My Distribution Applications/Internet ${user.name} CHANGELOG 500 400 tomcat6 tomcat6 […]