如何在maven pom.xml中正确定义插件版本? [英] How can I define Plugin Versions correctly in maven pom.xml?

查看:163
本文介绍了如何在maven pom.xml中正确定义插件版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在尝试创建Web应用程序时遇到了麻烦,并且由于办公室惯例,我在尝试创建Java Web应用程序时使用了Maven/Jetty/Eclipse安装程序.

I am struggeling in my attempts to create web-apps, and due to office conventions, I am using a Maven/Jetty/Eclipse setup, while attempting to create java web apps.

在命令窗口中,我尝试通过键入mvn jetty:run进行编译和运行.当前,这会导致很多警告,而我会(很可能)遇到与之相关的构建失败.我想在继续之前解决这些错误,即使它们不是构建失败的原因.

In my command window, I am trying to compile and run, by typing mvn jetty:run. This currently results in a lot of warnings, before I get a (very likely) related build failure. I would like to resolve these errors before moving on, even if they are not the reason of the build failure.

警告消息似乎表明我缺少插件版本的声明,而我尝试寻求帮助的建议也是如此.但是,我确实定义了版本.我的另一个担心是错误指出警告,即.来自第13行.这是空行.我担心可能会有一些更新问题,或重复的pom.xml文件,但是,另一方面,编译器的确对我在文件中进行编辑做出了反应.

The warning message seems to say that I am missing declarations for versions of my plugins, and my attempts to search for help has suggested the same. I do however have versions defined. Another concern of mine is that the errors states that the warnings ie. come from line 13. This is an empty line. I am worried that there might be some update issues, or duplicated pom.xml-files, but on another note, the compiler does react to me editing in the file as I know it.

我的错误消息是:

H:\projects\releaseplan>mvn jetty:run
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for releaseplan:releaseplan-model:jar:5
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ releaseplan:releaseplan:5, H:\projects\releaseplan\pom.xml, line 13, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ releaseplan:releaseplan:5, H:\projects\releaseplan\pom.xml, line 22, column 15
[WARNING]
[WARNING] Some problems were encountered while building the effective model for releaseplan:releaseplan-server:war:5
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ releaseplan:releaseplan:5, H:\projects\releaseplan\pom.xml, line 13, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ releaseplan:releaseplan:5, H:\projects\releaseplan\pom.xml, line 22, column 15
[WARNING]
[WARNING] Some problems were encountered while building the effective model for releaseplan:releaseplan:pom:5
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 13, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ line 22, column 15

还有整个pom.xml,以防错误出现在我不希望出现的地方:

And the entire pom.xml, in case the error is somewhere I do not expect it to be:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>releaseplan</groupId>
<artifactId>releaseplan</artifactId>
<version>1</version>
<packaging>pom</packaging>
<name>releaseplan</name>

<build>

    <plugins>

        <!--<plugin> <groupId>ro.isdc.wro4j</groupId> <artifactId>wro4j-maven-plugin</artifactId> 
            <version>${wro4j.version}</version> <executions> <execution> <goals> <goal>jshint</goal> 
            </goals> </execution> </executions> <configuration> <options>devel,evil,noarg</options> 
            </configuration> </plugin> -->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <!-- Jetty Version: 8.x Home: Eclipse, Codehaus Java Version: 1.6 Protocols: 
                HTTP/1.1 RFC2616, WebSocket, SPDY Servlet Version: 3.0 JSP Version: 2.1 http://wiki.eclipse.org/Jetty -->
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.13.v20130916</version>
            <configuration>
                <webAppConfig>
                    <contextPath>/</contextPath>
                </webAppConfig>
                <scanIntervalSeconds>1</scanIntervalSeconds>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echo>********************************************</echo>
                            <echo>***** This project REQUIRES Maven 3.0+ *****</echo>
                            <echo>********************************************</echo>
                            <echo>mvn jetty:run - Running as un-assembled webapp</echo>
                            <echo>mvn jetty:run-war - Running as assembled webapp</echo>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<dependencyManagement>
    <dependencies>
        <!--  <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> 
            <version>${protostuff.version}</version> </dependency> <dependency> <groupId>com.dyuproject.protostuff</groupId> 
            <artifactId>protostuff-json</artifactId> <version>${protostuff.version}</version> 
            </dependency> -->
        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>${jackson.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<modules>
    <module>model</module>
    <module>server</module>
</modules>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <compiler.source>1.5</compiler.source>
    <compiler.target>1.5</compiler.target>

    <junit.version>4.4</junit.version>
    <servlet.version>2.5-20081211</servlet.version>
    <jetty.version>6.1.24</jetty.version>
    <protobuf.version>2.3.0</protobuf.version>
    <jackson.version>1.7.9</jackson.version>
    <protostuff.version>1.0.2-SNAPSHOT</protostuff.version>
</properties>

 <repositories>
        <repository>
            <id>java</id>
            <name>java</name>
            <url>http://download.java.net/maven/2/</url>
        </repository>
        <repository>
            <id>repo1</id>
            <name>repo1</name>
            <url>http://repo1.maven.org/maven2</url>
        </repository>
    </repositories>



<pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Maven Plugin Repository</name>
      <url>http://repo1.maven.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>
</project>

推荐答案

您可能使用的Maven 3需要了解此处所述的所有插件版本:

You probably use Maven 3 which need to know all plugins versions as describe here : https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes#Maven3.xCompatibilityNotes-AutomaticPluginVersionResolution

正确的方法是在父pom.xml的 pluginManagement 部分中添加所有插件版本.最好的方法(在企业中)是让所有项目都使用企业父pom.xml文件.

Adding in the pluginManagement section of your parent pom.xml all plugins versions is the right way. The best way (in enterprise) is to have an enterprise parent pom.xml file used by all projects.

实际上,请在父pom.xml properties 部分中添加以下行:

In fact, add the following line in your parent pom.xml properties section :

<maven-compiler-plugin.version>3.0</maven-compiler-plugin.version>

并在您的父pom.xml build> pluginManagement 部分中添加以下行:

And add the following line in your parent pom.xml build > pluginManagement section :

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
</plugin>

希望有帮助...

这篇关于如何在maven pom.xml中正确定义插件版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆