在处理POM之后,Jenkins构build是否可以知道项目的Maven版本号? 我有一些项目,其中版本控制是由Maven控制的,在后期构build工作中,我们希望创build一个Debian包并调用一些shell脚本。 我需要的是Maven用作Jenkins环境variables的版本号,所以我可以将它传递给构build后的操作。 要清楚的是,我不需要知道如何让Jenkins把一个版本号传给Maven; 相反,我希望Maven将一个版本号传给Jenkins!
在我的一个项目中,我需要构build一个没有版本的项目。 我有一个项目调用commonjerseylib当我通过使用maven构build它我得到commonjerseylib-1.0.war但我需要战争文件名commonjerseylib.war 我从pom中删除版本标签,但默认情况下,maven正在创build1.0版本。 先谢谢你 <modelVersion>4.0.0</modelVersion> <groupId>commonjerseylib</groupId> <artifactId>commonjerseylib</artifactId> <packaging>ear</packaging> <name>commonjerseylib</name> <!–<version>1.0</version>–>
我在一个现有的,相当香草的Maven 2项目中使用Protocol Buffers进行实验。 目前,我每次需要更新生成的源代码时,都会调用一个shell脚本。 这显然是一个麻烦,因为我希望在每次构build之前自动生成源代码。 希望没有诉诸可耻的hackery。 所以,我的问题是双重的: 远景:有没有一个“协议缓冲区插件”为Maven 2可以实现上述以automagic方式? 谷歌代码上有一个分支,他的作者似乎在实现这样一个插件方面做了一些尝试。 不幸的是,它没有通过代码审查或合并到protobuf主干。 该插件的状态是未知的。 可能更现实的是:缺less一个实际的插件,我怎么可以从我的Maven 2构build调用protoc ? 我想我可以将现有的shell脚本连接到antrun调用或类似的东西。 个人经验是最感激的。
在CI构build服务器上,本地Maven存储库重复填充文件系统(几天之后)。 在这种情况下,其他人做什么策略来修剪本地存储库? – 最大
Maven dependency:analyze我的项目中的依赖关系的抱怨。 它如何确定哪些是未使用的,哪些是未声明的? 我应该怎么办呢? 例: $ mvn dependency:analyze … [WARNING] Used undeclared dependencies found: [WARNING] org.slf4j:slf4j-api:jar:1.5.0:provided [WARNING] commons-logging:commons-logging:jar:1.1.1:compile [WARNING] commons-dbutils:commons-dbutils:jar:1.1-osgi:provided [WARNING] org.codehaus.jackson:jackson-core-asl:jar:1.6.1:compile … [WARNING] Unused declared dependencies found: [WARNING] commons-cli:commons-cli:jar:1.0:compile [WARNING] org.mortbay.jetty:servlet-api:jar:2.5-20081211:test [WARNING] org.apache.httpcomponents:httpclient:jar:4.0-alpha4:compile [WARNING] commons-collections:commons-collections:jar:3.2:provided [WARNING] javax.mail:mail:jar:1.4:provided 注意:我的运行时容器中使用了很多这些依赖关系,并且我将它们声明为提供,以避免在类path中使用不同版本的同一个库。
这是我目前的项目结构: pom.xml /src /main /resources hibernate.cfg.xml /META-INF persistence.xml 我在这两个文件( hibernate.cfg.xml和persistence.xml )中都有非常相似的configuration参数,这看起来很奇怪,但这是我在许多在线示例和教程中看到的。 我不明白为什么我需要有两个文件。 是否可以只与一个工作? 请解释。 PS。 例如,我应该在两个文件中声明hibernate.dialect ,还是只有一个就足够了? 如果是这样,哪一个使用?
我知道我可以在〜/ .m2 / settings.xml中添加Maven仓库来获取依赖关系。 但有没有可能使用命令行添加一个存储库,如下所示: mvn install -Dmaven.repository=http://example.com/maven2 我想这样做的原因是因为我正在使用持续集成工具,我可以完全控制它用来调用maven的命令行选项,但是为运行集成工具的用户pipe理settings.xml只是一点点的麻烦。
我只是检查了一些项目,需要build立它们,但是我很早以前(也许是6个月)安装了Maven,真的没有用过它 – 我没有这个项目的pom.xml没有这个“ http://repo1.maven.org/myurlhere “其中的任何地方 – 它有绝对的url,该项目的maven回购,但maven仍然试图从一般的maven回购下载: Macintosh:trunk$ mvn clean install [INFO] Scanning for projects… Downloading: http://repo1.maven.org/url/project/project/xx/project-xxpom [INFO] Unable to find resource 'url.project:project:pom:xx' in repository central (http://repo1.maven.org/) [INFO] ———————————————————————— [ERROR] FATAL ERROR [INFO] ———————————————————————— [INFO] Failed to resolve artifact. GroupId: url.project ArtifactId: project Version: xx Reason: Unable to download the artifact from any repository url.project:project:pom:xx […]
我想发出像-Dmaven.test.skip=true -Dcheckstyle.skip这样的命令
我正在使用Robolectric来testingAndroid。 我正在通过maven运行我的testing,例如 mvn -Dtest=LogTest test 如果我有写入日志的代码,例如 Log.d("TAG", "blah"); 或者使用Roboguice的Ln Ln.d("blah"); 我在maven的surefire日志(文本文件)中看不到任何输出。 理想情况下,我真的想要简单的日志语句去控制台。 我可以通过使用System.out.println("blah")写入控制台,但当然我宁愿使用支持的日志API。 所以我的问题是,为什么我根本没有看到日志输出,以及如何获取日志消息写入控制台?