Tag: maven plugin

为什么Maven找不到我的自定义Mojo?

我有自己的Mojo课程。 @Mojo(name=”mojo”, threadSafe=true) public class MyMojo extends AbstractMojo { @Component private MavenProject project; public void execute() throws MojoExecutionException, MojoFailureException { getLog().info(“Execute”); } } 之后,我将其安装在本地存储库中。 [INFO] Applying mojo extractor for language: java-annotations [INFO] Mojo extractor for language: java-annotations found 0 mojo descriptors. [INFO] Applying mojo extractor for language: java [INFO] Mojo extractor for language: java found […]

未指定Maven插件版本

我刚刚注意到插件的版本在maven中是可选的。 我仍然可以构建我的模块而不指定它。 让我们以maven-bundle-plugin为例。 org.apache.felix maven-bundle-plugin true …. 我编写了一个简单的pom.xml而没有父亲来试试这个,所以不涉及pluginManagement。 我还检查了maven-model-builder中的超级超级pom-4.0.0.xml,以确认maven-bundle-plugin不存在。 此插件版本未在任何地方指定。 maven如何确定采用哪个版本?

maven enforcer插件的用法

我想使用maven enforcer插件检查我的路径上是否有重复的类。 我从这里试过这个例子。 但当我这样运行时: mvn enforcer:enforce 我明白了: 无法在项目datapopulator上执行目标org.apache.maven.plugins:maven-enforcer-plugin:1.0.1:enforce(default-cli):目标org.apache.maven.plugins的参数’rules’:maven-enforcer -plugin:1.0.1:强制执行缺失或无效 有没有办法正确使用它? 编辑#1 如果将我的配置更改为: org.apache.maven.plugins maven-enforcer-plugin 1.0.1 enforce-versions enforce true 产生相同的错误。

您更喜欢哪种方法来改善maven项目的增量构建?

我将优化构建项目的时间。 最耗时的事情之一是项目的汇编。 由于已知的maven问题特别在这里提到: Maven增量构建我们必须在每个构建过程之前使用mvn clean 。 我调查了这个问题,发现了两种方法: 增量构建插件Maven Mojo Maven 2 Reactor插件 我测试了Incremental-build-plugin Maven Mojo ,看起来非常不错。 正如我所看到的, Maven 2 Reactor Plugin实现了几乎相同的function,但应该指定特殊命令来实现结果(例如mvn reactor:make )。 所以我得出的结论是, Maven 2 Reactor插件只对开发人员来说更方便,如果他们要优化本地计算机上的建筑物的时间。 但我有一些犹豫,因为Maven 2 Reactor插件是托管的(我认为)支持官方maven插件,但Incremental-build-plugin Maven Mojo托管在java.net上。 我的问题是: 我的结论是这两个插件解决了几乎相同的问题吗? 有没有人有使用这两个插件的经验,并能够给他们任何反馈? 您对建筑的优化还有其他想法吗?

以编程方式解析插件之外的Maven依赖关系 – 获取RepositorySystemSession和RepositorySystem

也许这将是一个比我原先想象的更大的任务,但无论如何,我正在尝试从文件加载MavenProject然后解决它的依赖关系。 我有两个位的代码,但我缺少一些我需要的对象引用; 特别是我需要获取RepositorySystemSession和RepositorySystem实例。 有小费吗? 注意:我用maven-plugin标记了这个问题,但这不是Maven插件。 我很高兴要求Maven 3(不管怎么说我已经有了……) 这是我到目前为止的代码: 构建MavenProject : public static MavenProject loadProject(File pomFile) throws Exception { MavenProject ret = null; MavenXpp3Reader mavenReader = new MavenXpp3Reader(); if (pomFile != null && pomFile.exists()) { FileReader reader = null; try { reader = new FileReader(pomFile); Model model = mavenReader.read(reader); model.setPomFile(pomFile); ret = new MavenProject(model); } finally […]

如何将maven项目版本放入war文件清单中?

我需要让Maven将POM文件中的版本号插入位于/WEB-INF/manifest.mf下的WAR文件中的清单中。 我该怎么做呢? 我能够使用maven-jar-plugin轻松地在JAR文件中提交文档以进行此操作,但这不适用于WAR文件。 谢谢您的帮助!

aspectj-maven-plugin,声明soft如何编译

是否可以使用软化的exception编译项目(例如: declare soft: Exception : execution(* *.*()); )只使用aspectj-maven-plugin中的方面? 我无法处理它……我仍然遇到编译错误 unreported exception Exception; must be caught or declared to be thrown 因此编译时不考虑方面。 我正在使用此命令编译: mvn clean aspectj:compile 我的pom.xml是: 4.0.0 pl.group.id aop 1.0.0 org.aspectj aspectjrt 1.7.4 org.apache.maven.plugins maven-compiler-plugin 3.1 org.codehaus.mojo aspectj-maven-plugin 1.6 1.7 1.7 1.7 src/main/aspect compile test-compile 我究竟做错了什么?

通过STDOUT中的脚本可以获得干净的机器友好的Maven线/ xml / json输出?

例如,对于maven项目运行此命令: mvn dependency:list 我需要Maven 只需要这两行(从下面的输出中删除): com.example.code_samples.maven_dependencies:direct_library:jar:0.0.1-SNAPSHOT:compile com.example.code_samples.maven_dependencies:indirect_library:jar:0.0.1-SNAPSHOT:compile 有没有办法(CLI – –option )只能在干净的行,xml,json,…中看到这个请求的信息? 相反,输出看起来更像是非结构化日志。 它没有已知的格式,并且在STDOUT中将所有类型的信息混合在一起。 [INFO] Scanning for projects… [INFO] ———————————————————————— [INFO] Reactor Build Order: [INFO] [INFO] direct_library [INFO] dependent_binary [INFO] indirect_library [INFO] maven_dependencies [INFO] [INFO] ———————————————————————— [INFO] Building direct_library 0.0.1-SNAPSHOT [INFO] ———————————————————————— Downloading: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/indirect_library/0.0.1-SNAPSHOT/maven-metadata.xml Downloaded: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/indirect_library/0.0.1-SNAPSHOT/maven-metadata.xml (2 KB at 16.1 KB/sec) [INFO] [INFO] — maven-dependency-plugin:2.8:list (default-cli) […]

使用文件存在时,忽略我的maven配置文件中的激活(配置文件始终执行)

我正在使用基于我的pom.xml中存在的文件的激活。 但是,无论如何,我的个人资料总是被执行。 这是个人资料说明: copy file.xml org.apache.maven.plugins maven-antrun-plugin 1.7 copy-resources validate run 我这样称呼我的个人资料:mvn package -Pcopy 但无论文件是否存在,都会始终调用配置文件。 我究竟做错了什么? 谢谢罗曼。

在使用URLClassLoader加载的类上可靠地查找注释

我有一个代码生成器,它使用URLClassLoader来加载指定路径上的类,扫描它们以获取注释,然后在字段/方法上使用Reflection,生成DTO。 它在测试应用程序中运行良好。 当我把它放入Maven MOJO时,我突然失去了在类上看到javax.persistence.Entity注释的能力。 它加载它们,它可以看到所有字段,但实体注释不再可见。 我假设这与Classpath问题有关 – 是吗? 测试应用程序(插件本身中的main()函数)或MOJO都不是扫描类所来自的项目的一部分。 但是一个有效,另一个没有。 我有一些调试代码在检查它时打印出类上的所有注释,而在非运行版本中它找不到任何注释。 我是如何调试问题/解决它的?