Java Maven和POM.xml中的插件
我刚开始使用Maven,我了解到插件是可以使用的附加组件。Java Maven和POM.xml中的插件,java,maven,maven-3,pom.xml,maven-plugin,Java,Maven,Maven 3,Pom.xml,Maven Plugin,我刚开始使用Maven,我了解到插件是可以使用的附加组件。 pom.xml文件的典型结构是 <project> <groupId>org.koshik.javabrains</groupId> <artifactId>JarName</artifactId> (A fldernamed JarName was created) <version>1.0-SNAPSHOT</version> &l
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>
在依赖项之前还是在
依赖项
标记之后?这有关系吗?您可以在pom.xml文件的任意位置的两个
标记之间插入第二个代码片段。
应该放在
部分。
或
节的顺序并不重要
关于pom.xml的完整参考信息如下:如果您想使用插件进行构建,可以使用以下结构
<project>
<build>
<plugins>
</plugins>
</build>
</project>
POM中的章节顺序无关紧要。一般来说,Maven中有构建插件和报告插件。您的案例是使用构建插件,因此您必须将此
块放入..
部分
查看一些关于插件的基础知识。
<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>
<build>
<plugins>
<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>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
org.koshik.javabrains
JarName(创建了一个名为JarName的flderName)
1.0-快照
罐子
贾勒姆
http://maven.apache.org
UTF-8
org.jibx
jibxmaven插件
1.2.4
绑定
朱尼特
朱尼特
3.8.1
测试
如果使用maven配置文件,还可以在
的
部分放置插件。顺序无关紧要。关于两个重要问题的最新澄清
在哪里放置插件
在构建
/插件
部分中的大多数情况下,确实应该添加插件
,但是将其放置在插件
中与将其放置在插件管理
/插件
中有一个重要的区别
这种误解通常是Maven中未调用插件或更难排除故障的原因:
构建下的插件
/插件
是默认Maven构建的直接组成部分,如果它们指定了执行
或者为默认构建配置了一些东西(见下文)
build
/pluginManagement
/Plugins
下的插件不一定是默认Maven构建的一部分,也就是说,是一个管理,这是对Maven的提示:如果您碰巧使用了这个插件,那么请使用我在这里指定的版本、配置和执行,在这个管理中
但是使用的方法是什么?意味着:如果相同的插件也出现在构建/插件
部分中,则应用此管理(只有这样它才会有效)或如果插件默认由Maven调用,那么也应用它
但是默认情况下插件是如何调用的呢?这是maven背后主要理念的一部分:约定优先于配置。按照惯例,当您指定某个打包
(默认jar
,但它可以是war
),您希望调用某些插件。要构建jar
,请调用maven-jar插件
;要构建war
,请调用maven-war插件
,依此类推。因此,如果您在build
/pluginManagement
/plugin
中为具有默认绑定到Maven构建的插件指定插件配置,那么它也将被使用
关于
pom.xml
文件中各节的顺序,需要进一步澄清:在大多数情况下确实是不相关的,但是构建
/插件
部分中插件
元素的顺序可能很重要。由于Maven3.0.3(),附加到同一Maven阶段的不同插件执行将按照它们在pom.xml
文件中的声明顺序被调用。也就是说,排序在这种情况下很重要,因为它可能会影响构建的行为
此外,依赖项
声明的顺序也可能会影响您的构建方向,也就是说,如果与可传递依赖项发生冲突,则第一个声明的依赖项获胜。因此,在某些情况下,排序同样重要
最后但并非最不重要的一点是,尽管排序对于pom.xml
文件的其他部分并不重要,但好的习惯是遵循官方规定,并且作为简化版本,遵循以下声明顺序:
<project>
<modelVersion/>
<parent/>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<properties/>
<dependencyManagement/>
<dependencies/>
<build/>
<reporting/>
<profiles/>
</project>
供进一步阅读:
资料来源:好的。你的意思是为了向上面的文件添加插件标签,我只需要添加..是的,你不需要再次添加项目
<project>
<modelVersion/>
<parent/>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<properties/>
<dependencyManagement/>
<dependencies/>
<build/>
<reporting/>
<profiles/>
</project>
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:2.5.0:sort \
-Dsort.keepBlankLines -Dsort.predefinedSortOrder=recommended_2008_06