代码之家  ›  专栏  ›  技术社区  ›  Istao

Maven 3关于build.plugins.plugin.version的警告

  •  287
  • Istao  · 技术社区  · 14 年前

    我怎样才能摆脱这些警告?

    [INFO] Scanning for projects...
    [WARNING] 
    [WARNING] Some problems were encountered while building the effective model for proj:id:jar:3.1
    [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 195, column 15
    [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 204, column 15
    [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 227, column 15
    [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 215, column 15
    [WARNING] 'reporting.plugins.plugin.version' for org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 271, column 15
    [WARNING] 
    [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
    [WARNING] 
    [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
    
    7 回复  |  直到 12 年前
        1
  •  397
  •   Jay    11 年前

    添加 <version> 元素之后 <plugin> <artifactId> pom.xml 文件。查找以下文本:

    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
    

    添加版本标记:

    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
    

    警告应该得到解决。

    plugins:maven编译器插件丢失

    很多人都提到过 这个问题正在发生,但没有提出解决办法。我所需要做的就是进入我的项目POM文件,并添加 <版本>

    [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ entities ---
    

    取那个版本号(如 2.3.2 并将其添加到POM中,如图所示。

        2
  •  84
  •   gavenkoa    9 年前

    跑步方式:

      $ mvn help:describe -DartifactId=maven-war-plugin -DgroupId=org.apache.maven.plugins
    

    对于没有版本的插件。得到输出:

    Name: Maven WAR Plugin
    Description: Builds a Web Application Archive (WAR) file from the project
      output and its dependencies.
    Group Id: org.apache.maven.plugins
    Artifact Id: maven-war-plugin
    Version: 2.2
    Goal Prefix: war
    

    更新 如果要在版本列表中进行选择,请使用 http://search.maven.org/ http://mvnrepository.com/ Maven包搜索对话框 . 检查一下文件。

    超级更新 我还使用:

    $ mvn dependency:tree
    $ mvn dependency:list
    $ mvn dependency:resolve
    $ mvn dependency:resolve-plugins  # <-- THIS
    

    最近我发现 最新的 插件(或库)的版本,因此不再需要谷歌或访问 马文中心

    $ mvn versions:display-dependency-updates
    $ mvn versions:display-plugin-updates     # <-- THIS
    
        3
  •  14
  •   Christian Kuetbach    10 年前

    Maven 3对POM结构的限制更大。例如,你必须设置插件的版本。

    https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes

        4
  •  11
  •   Wolfgang Fahl    5 年前

    从以下位置获取最新版本信息:

    https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin

    <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
    </dependency>
    

    您可能需要使用版本标记和插件标记的注释。

    <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source />
            <target />
        </configuration>
    </plugin>
    

    如果愿意,可以修改pom,使其在properties标记中包含版本信息,如另一个答案中所述。

        5
  •  10
  •   Patrick Koorevaar    9 年前

    家长pom:

    <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/xsd/maven-4.0.0.xsd">
        ....
        <properties>
            <maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version>
        </properties>
        ....
    </project>
    

    项目pom:

    <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/xsd/maven-4.0.0.xsd">
        ....
        <build>
            <finalName>helloworld</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin-version}</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    另见: https://www.allthingsdigital.nl/2011/04/10/maven-3-and-the-versions-dilemma/

        6
  •  2
  •   ohahohah    6 年前

    这是个很好的答案。我想添加“为什么在Maven3中添加元素”。
    Maven 3.x Compatibility Notes

    插件元版本解析
    在内部,Maven 2.x使用了特殊的版本标记版本和最新版本来支持自动插件版本解析。这些元版本在声明的元素中也被识别。为了实现可复制的构建,Maven 3.x不再支持在POM中使用这些元版本。因此,用户将需要用具体版本替换这些元版本的出现。

    maven-compiler-plugin - usage

    注意:如果不指定插件的版本,Maven 3.0将发出警告。

        7
  •  0
  •   Shukant    6 年前

    并添加版本标记 maven版本