Tag: maven plugin

Maven Plugin API:从Artifact获取MavenProject

我试图提取有关我的项目中使用的所有依赖项(递归)的信息。 看起来MavenProject类提供了我需要的所有信息。 但我无法弄清楚如何将Artifact的实例转换为MavenProject的实例 /** * * * @reqiresDependencyResolution * */ @Mojo(name = “license-overview”, defaultPhase = LifecyclePhase.PROCESS_SOURCES) public class MyMojo extends AbstractMojo { /** * @parameter default-value=”${project}” * @required * @readonly */ MavenProject project; public void execute() throws MojoExecutionException { Set artifacts= project.getArtifacts(); for (Artifact artifact : artifacts) { //Here I need to access the artifact’s […]

通过组合而不是inheritance导入maven插件配置。 可以使用构建扩展来完成吗?

通过组合而不是inheritance导入maven插件配置。 可以使用构建扩展来完成吗? 我已经使用maven超过3年了,并且有一个总是让我烦恼的缺点。 是时候找到解决方案了。 问题: 我有一个带有3个孩子的“爸爸”maven模块:“男孩”,“女孩”和“孩子”。 这些孩子中的每一个都必须拥有自己独特的一组插件配置,用于默认的“干净安装”构建。 我不想把这个配置放在孩子们的poms上。 我宁愿把它放在我以后可以重复使用的地方。 我已尝试使用配置文件,但它不起作用 – 请在MNG-5127上查看我的评论和附加项目 通过对daddy.zip项目进行以下更改,我找到了更好的解决方案: 1)在爸爸的pom上,用[phase] none [/ phase]的插件执行替换[profiles] … maven-antrun-plugin printboy none run printkid none run printgirl none run … 2)在同一个pom上,添加了一个自定义构建扩展 br.com.touchtec.maven.plugins execution-enabler-extension 1.0.0-SNAPSHOT … 3)扩展将根据项目的属性值更改插件执行阶段。 下面的Java代码。 @Component(role = AbstractMavenLifecycleParticipant.class, hint = “enableif”) public class EnableIfExtension extends AbstractMavenLifecycleParticipant { @Override public void afterProjectsRead(MavenSession session) throws MavenExecutionException […]

使用maven构建时,jar文件被破坏

在构建war文件的同时,我将一组jar子从一个位置复制到战争中的文件夹中。 虽然文件确实被复制了,但是我认为它们被破坏了,因为在战争之外拍摄的jar的相同类文件打开了调试器,而在从war文件中取出后它没有打开。 这是我的战争pom.xml的一部分,我复制了jar子 copy-jars process-resources copy-resources ${basedir}/target/${project.artifactId}-${buildNumber}/somefolder SomeSourceDirectory true **/** SomeSourceDirectory有一些jar和一些其他文件结果是:myWar / somefolder / a.jar但是当我在调试器中打开这个jar里面的类时…我在WinZip中得到错误 Invalid compressed data to extract. Severe Error: Compressed data is invalid 但是,当我在原始文件夹中查看时,即在战争之外,可以查看相同的类文件。 复制jar子时有错误吗? 谢谢。

让JRebel使用’mvn tomcat:run’

我想知道当我从命令行执行’mvn tomcat:run’时,是否有人可以指示我使JRebel工作的方向。 我可以让JRebel在我的IDE(IntelliJ IDEA)中工作,但是在IDE内部运行感觉有点笨拙。 当我运行测试时,我不喜欢在它旁边运行另一个进程 – 称之为习惯。 不仅如此,我一直在尝试使用JRebel进行一些服务器锁定…而且我不希望IDE因此而挂起。 我一直在手动修复这个过程,并且控制权被交还给IDEA ……但是最好不让它在IDEA中运行。 我试过谷歌搜索,但我还没有找到如何将JRebel与tomcat插件结合使用。 谢谢

为什么Maven命令“mvn sonar:sonar”在我的“pom.xml”中没有任何插件配置的情况下工作?

我的回购中有一个Maven Web项目。 我是一个Maven noob,但我仍然明白我们需要配置插件才能运行插件特定命令。 事实: 我有一个声纳服务器在我的本地机器上运行9000端口。 我没有在我的POM.xml中添加任何声纳特定插件 参考: http://www.sonarsource.org/we-had-a-dream-mvn-sonarsonar/ 观察: 但是当我从命令行运行mvn sonar:sonar ,它工作正常。 事实很重要的是我没有在我的POM.xml中配置声纳插件即使那时Maven正在拾取并理解“声纳:声纳”目标/命令? 问题/好奇心: 我不想要声纳本身的工作知识。 我想知道为什么mvn sonar:sonar无需在我的pom.xml中配置声纳插件 为什么以及如何?

如何在插件中下载Maven工件?

我有一个Maven插件,它在其配置中采用了groupId,artifactId和版本。 我希望能够从远程存储库下载该工件并将该文件复制到项目中。 我无法弄清楚如何下载工件。 我知道我可以使用依赖插件解决依赖关系,但我需要它在我的插件中发生。 我怎样才能做到这一点?

无法连接到Eclipse Luna Market

我无法将我的Eclipse Luna发行版连接到安装Maven 2插件的市场。 这是我的配置: Eclipse: – Eclipse Luna M5 Release,我配置了一个代理 我的电脑: – Windows XP 32位 这是错误消息: !SESSION 2014-03-03 14:55:53.568 ———————————————– eclipse.buildId=4.4.0.I20140123-1600 java.version=1.6.0_29 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR Framework arguments: -product org.eclipse.epp.package.standard.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.standard.product !ENTRY org.eclipse.core.net 1 0 2014-03-03 14:56:01.676 !MESSAGE System property http.proxyHost […]

使用Maven插件测试中的org.apache.maven.repository.RepositorySystem进行组件查找exception

我正在尝试使用maven-plugin-testing-harness 2.1版以及以下测试用例: public class FooTest extends AbstractMojoTestCase { @Override protected void setUp() throws Exception { super.setUp(); } public void testSomething() throws Exception { // todo } } setUp()调用测试失败: org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException role: org.apache.maven.repository.RepositorySystem roleHint: at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:257) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:239) at org.codehaus.plexus.PlexusTestCase.lookup(PlexusTestCase.java:206) at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:118) at foo.FooTest.setUp(FooTest.java:54) 我在pom.xml中的这些依赖项: org.apache.maven maven-plugin-api 3.0.5 org.apache.maven maven-model 3.0.5 org.apache.maven maven-core 3.0.5 […]

将完整的maven远程存储库下载到本地存储库?

是否可以从http://repo1.maven.org/maven2/获取整个远程存储库到我的本地存储库(到%USERPROFILE% )?

使用Shade-Plugin正确地最小化Uber Jar

我正在使用Maven-Shade-Plugin创建一个可运行的Uber-jar。 根据此页面的最后一帧,可以通过使用以下方式最小化jar的大小: true 但是此function未考虑log4j.properties文件中声明的类。 因此,例如org.apache.log4j.appender.TimeAndSizeRollingAppender不包含在Uber-jar中,即使它已在log4j.properties文件中声明。 我相信我会遇到与Spring相同的问题。 如果我的代码只引用接口A而我的Spring文件包含实现A的B类实例化,那么B可能不会被添加到jar中,因为它不在代码中。 我怎么解决这个问题?