我正在使用maven-assembly插件来创建我的应用程序的jar,包括其依赖项如下:
<assembly>
<id>macosx</id>
<formats>
<format>tar.gz</format>
<format>dir</format>
</formats>
<dependencySets>
<dependencySet>
<includes>
<include>*:jar</include>
</includes>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
Run Code Online (Sandbox Code Playgroud)
(我省略了一些与问题无关的其他内容)
到目前为止,这工作得很好,因为它创建了一个lib
包含所有依赖项的目录.但是,我最近添加了一个新的依赖项,其范围是system
,并且它不会将其复制到lib
输出目录.我必须遗漏一些基本的东西,所以我打电话求助.
我刚刚添加的依赖项是:
<dependency>
<groupId>sourceforge.jchart2d</groupId>
<artifactId>jchart2d</artifactId>
<version>3.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/external/jchart2d-3.1.0.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我能够包含此依赖项的唯一方法是将以下内容添加到assembly元素:
<files>
<file>
<source>external/jchart2d-3.1.0.jar</source>
<outputDirectory>lib</outputDirectory>
</file>
</files>
Run Code Online (Sandbox Code Playgroud)
但是,这会强制我在重命名此jar时更改pom和程序集文件(如果有的话).而且,这似乎是错的.
我有试过<scope>runtime</scope>
在dependencySets
和<include>sourceforge.jchart2d:jchart2d</include>
没有运气.
那么如何system
在maven 2中将scoped jar 包含到汇编文件中?
非常感谢
我正在尝试使用此处描述的解决方案来解决恼人的"生命周期配置未涵盖的插件执行:org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source(执行:默认,阶段:生成 -来源)"当我将以下插件放在我的pom.xml上时:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals><goal>add-source</goal></goals>
<configuration>
<sources>
<source>src/bootstrap/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是当我运行mvn clean install时,我得到了这个:
原因:在存储库中找不到POM'org.eclipse.m2e:lifecycle-mapping':无法从任何存储库下载工件
有没有人知道如何让m2e和maven开心?
我想发出像这样的命令 -Dmaven.test.skip=true -Dcheckstyle.skip
我刚开始使用Maven,我读到插件是可以使用的附加组件.
典型的pom.xml
文件结构是
<project>
<groupId>org.koshik.javabrains</groupId>
<artifactId>JarName</artifactId> (A fldernamed JarName was created)
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JarName</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
问题:我应该在哪里插入plugin
标签?如下:
<plugin>
<groupId>org.jibx</groupId>
<artifactId>jibx-maven-plugin</artifactId>
<version>1.2.4</version>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在依赖之前还是在dependency
标记之后?有关系吗?
在Windows 7上,我试图将maven-3命令的输出发送到文本文件.
我从我试图分析的项目的根目录中调用命令.
命令是:
mvn dependency:tree -Dverbose -Dincludes=commons-collections -DoutputFile=C:\Users\myname\Documents\output.txt
Run Code Online (Sandbox Code Playgroud)
当我在没有outputFile
参数的情况下运行命令时,我看到发送到控制台的输出.
但是当我将它与outputFile
参数一起使用时,输出文件为空.
知道我在这里缺少什么吗?
执行mvn clean verify
完所有内容后,编译成功,但我还得到以下信息:
[WARNING] Plugin validation issues were detected in 7 plugin(s)
[WARNING]
[WARNING] * org.apache.maven.plugins:maven-resources-plugin:3.2.0
[WARNING] * org.apache.maven.plugins:maven-jar-plugin:3.2.2
[WARNING] * org.jacoco:jacoco-maven-plugin:0.8.8
[WARNING] * org.apache.maven.plugins:maven-compiler-plugin:3.10.1
[WARNING] * org.codehaus.mojo:build-helper-maven-plugin:3.3.0
[WARNING] * org.apache.maven.plugins:maven-surefire-plugin:2.22.2
[WARNING] * com.mysema.maven:apt-maven-plugin:1.1.3
[WARNING]
[WARNING] For more or less details, use 'maven.plugin.validation' property with one of the values (case insensitive): [BRIEF, DEFAULT, VERBOSE]
Run Code Online (Sandbox Code Playgroud)
首先,我不理解警告本身,它对我的代码的影响等。那么如何解决这个问题?最后,如何使用maven.plugin.validation
财产?我找不到任何关于此的文档。
尝试编译Vaadin WAR时出现此错误:
Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project testvaadin-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我知道这个错误意味着maven无法找到我的web.xml,但在"Book of Vaadin"中它表示在UI类中使用Servlet API 3.0和Annotation时不需要web.xml@WebServlet
.
我正在一个单独的配置文件中编译我的widgetset(根据本指南),当我输入此配置文件时,它编译得很好.但是,当我只编译web项目时,我得到上面提到的错误.
是什么赋予了?
我是否以某种方式覆盖了maven的行为?Vaadin甚至没有创建WEB-INF目录.我想我可以创建WEB-INF文件夹并在那里保留一个"ghost"web.xml以保持maven的快乐,但这似乎不对.
我错过了什么吗?
有谁知道这个很好的解决方案?
我的仓库中有一个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 Archetypes是"模板",通过它您可以快速生成给定框架或项目类型的运行示例.我正在尝试编译当前在网上活动的所有Maven原型目录的列表.
关于原型的知识存储在目录中.
目录是xml文件.
Archetype插件捆绑了内部目录.默认情况下使用此选项.
Archetype插件可以使用本地文件系统和HTTP连接中的目录.
到目前为止,我已经收集了这个发布目录的存储库列表,但是很想知道是否有人知道更多:
mvn archetype:generate
-DarchetypeCatalog=local
-DarchetypeCatalog=remote
-DarchetypeCatalog=http://repo.fusesource.com/maven2
-DarchetypeCatalog=http://cocoon.apache.org
-DarchetypeCatalog=http://download.java.net/maven/2
-DarchetypeCatalog=http://myfaces.apache.org
-DarchetypeCatalog=http://tapestry.formos.com/maven-repository
-DarchetypeCatalog=http://scala-tools.org
-DarchetypeCatalog=http://www.terracotta.org/download/reflector/maven2/
Run Code Online (Sandbox Code Playgroud)
链接到相同的:1)FuseSource 2) Cocoon 3)Java.net 4)MyFaces 5)Tapestry 6)Scala目录 7)Terracotta目录
您会注意到,如果存储库实际发布了原型目录(以上所有内容),您将获得所有选项的UI提示archetype-catalog.xml
.例如:
mvn archetype:generate -DarchetypeCatalog=http://scala-tools.org
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://scala-tools.org -> scala-archetype-simple (A simple scala project)
2: http://scala-tools.org -> lift-archetype-blank (A blank/empty liftweb project)
3: http://scala-tools.org -> lift-archetype-basic (A basic liftweb project (with DB, css, ...))
Choose a …
Run Code Online (Sandbox Code Playgroud) 我使用不同的插件(ant4eclipse)来装箱我的文件.避免maven-jar插件执行的最佳方法是什么?
<plugin>maven-jar-plugin</plugin>
<exclude> ** / * < / exclude>
<skip>true</skip>
没有用