我想用我的主要Java项目及其所有依赖项创建一个jar文件。所以我在pom文件中创建了以下插件定义:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- exclude junit, we need runtime dependency only -->
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
所以我执行mvn dependency:copy- dependencies
,将所有的依赖复制到target/dependency
而不是复制上,效果很好dependency-jars
。有任何想法吗?
正常:您配置了maven-dependency-plugin
名为的特殊执行copy-dependencies
,但是,dependency:copy- dependencies
直接在命令行上调用目标会创建默认执行,该默认执行与您配置的执行不同。因此,不会考虑您的配置。
在Maven中,可以在2个地方配置插件:用于所有执行(<configuration>
在<plugin>
级别使用)或用于每个执行(<configuration>
在<execution>
级别使用)。
有几种方法可以解决您的问题:
<configuration>
外部<execution>
,并使其对所有执行通用。你将会拥有:<plugin>
选项无效。 运行生成一个war目录,其中。class文件位于目录中,它们也不会存档到目录中的jar中。产生相同的结果。 JIRA票-https://issues.apache.org/JIRA/browse/mwar-355 这就是有问题的项目:https://bitbucket.org/dmos62/raudondvaris
下面是我的pom.xml: 在Entourage-0.0.1-snapshot.jar中,config.properties位于根,其内容与上面相同(即localhost)。 我不是在胡编乱造!
但是,如果我添加以下属性,插件将忽略它(生成的WAR具有默认名称,即artifactId-version): 以下是文档的两个摘录: Warname: null FailonMissingWebXML: 如果web.xml文件丢失,构建是否失败。如果希望WAR构建时不使用web.xml文件,则设置为false。如果您正在构建一个没有web.xml文件的覆盖层,这可能很有用。 类型:布尔 因为:2.
Dependency management plugin 提供类似 Maven 依赖管理和排除功能. 根据配置的依赖管理元数据,此插件将会控制你项目的版本、传递依赖,并且将执行你项目中的所有排除声明(exclusions declared)。 示例代码: dependencyManagement { dependencies { dependency 'org.sprin
null
问题内容: 我安装了OSX ,并随同安装了: 在将其设置为1.6时显示1.6,而在将其设置为1.7时显示1.7: …但是Maven忽略了我的设置: 我发现了这个问题],这个家伙只需要在内部对其进行硬编码,但是我不希望自己进行硬编码(因此!),而且我也没有或。 它使用的版本似乎来自输出中的第一个版本,因此在短期内,通过调整1.7的文件),我能够再次获得1.6 ,但这仅意味着我获得了1.6而不是1.7