java - 在当前项目和插件组 org.codehaus.mojo 中找不到前缀为 'exec' 的插件

标签 java spring maven maven-3 exec-maven-plugin

我已经阅读了几个具有类似问题的问题和帮助 1 页面。不幸的是,我被困住了。

一个可能的原因可能是由代理引起的,但这里没有这样的代理。此外,当我从 Eclipse 更新它时,我的 PC 中的所有 Maven 项目都已成功更新。所以我放弃了这种可能性。

我检查的另一件事是在我的本地存储库中查找 codehaus,我找到了它 (C:\Users\myUser.m2\repository\org\codehaus\mojo)。

另一次尝试,我尝试在设置中添加 pluginGroups/pluginGroup。 该项目是一个非常简单的 hello word,使用 spring batch,只有一个 Tasklet 及其执行方法。没有 public static void main 方法。

在我添加了 Matteo 推荐后打印出整个错误的 Command.exe:

C:\temp\TaskletJavaConfig\spring-batch-helloworld>mvn compile exec:java -e
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\HP\QUICKT~1\
bin\JAVA_S~1\classes;C:\PROGRA~2\HP\QUICKT~1\bin\JAVA_S~1\classes\jasmine.jar
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-p
lugin/1.1/exec-maven-plugin-1.1.pom
[WARNING] Failed to retrieve plugin descriptor for org.codehaus.mojo:exec-maven-
plugin:1.1: Plugin org.codehaus.mojo:exec-maven-plugin:1.1 or one of its depende
ncies could not be resolved: Failed to read artifact descriptor for org.codehaus
.mojo:exec-maven-plugin:jar:1.1
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-deploy-plugin/2.7/maven-deploy-plugin-2.7.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-deploy-plugin:2.7: Plugin org.apache.maven.plugins:maven-deploy-plugin:2.7 or
one of its dependencies could not be resolved: Failed to read artifact descripto
r for org.apache.maven.plugins:maven-deploy-plugin:jar:2.7
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-site-plugin/3.3/maven-site-plugin-3.3.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-site-plugin:3.3: Plugin org.apache.maven.plugins:maven-site-plugin:3.3 or one
of its dependencies could not be resolved: Failed to read artifact descriptor fo
r org.apache.maven.plugins:maven-site-plugin:jar:3.3
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-antrun-plugin:1.3: Plugin org.apache.maven.plugins:maven-antrun-plugin:1.3 or
one of its dependencies could not be resolved: Failed to read artifact descripto
r for org.apache.maven.plugins:maven-antrun-plugin:jar:1.3
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-assembly-plugin:2.2-beta-5: Plugin org.apache.maven.plugins:maven-assembly-plu
gin:2.2-beta-5 or one of its dependencies could not be resolved: Failed to read
artifact descriptor for org.apache.maven.plugins:maven-assembly-plugin:jar:2.2-b
eta-5
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-dependency-plugin:2.8: Plugin org.apache.maven.plugins:maven-dependency-plugin
:2.8 or one of its dependencies could not be resolved: Failed to read artifact d
escriptor for org.apache.maven.plugins:maven-dependency-plugin:jar:2.8
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-release-plugin/2.3.2/maven-release-plugin-2.3.2.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:mave
n-release-plugin:2.3.2: Plugin org.apache.maven.plugins:maven-release-plugin:2.3
.2 or one of its dependencies could not be resolved: Failed to read artifact des
criptor for org.apache.maven.plugins:maven-release-plugin:jar:2.3.2
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metada
ta.xml
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-metadata.xml
[WARNING] Could not transfer metadata org.codehaus.mojo/maven-metadata.xml from/
to central (https://repo.maven.apache.org/maven2): sun.security.validator.Valida
torException: PKIX path building failed: sun.security.provider.certpath.SunCertP
athBuilderException: unable to find valid certification path to requested target

[WARNING] Could not transfer metadata org.apache.maven.plugins/maven-metadata.xm
l from/to central (https://repo.maven.apache.org/maven2): sun.security.validator
.ValidatorException: PKIX path building failed: sun.security.provider.certpath.S
unCertPathBuilderException: unable to find valid certification path to requested
target
[WARNING] Failure to transfer org.codehaus.mojo/maven-metadata.xml from https://
repo.maven.apache.org/maven2 was cached in the local repository, resolution will
not be reattempted until the update interval of central has elapsed or updates
are forced. Original error: Could not transfer metadata org.codehaus.mojo/maven-
metadata.xml from/to central (https://repo.maven.apache.org/maven2): sun.securit
y.validator.ValidatorException: PKIX path building failed: sun.security.provider
.certpath.SunCertPathBuilderException: unable to find valid certification path t
o requested target
[WARNING] Failure to transfer org.apache.maven.plugins/maven-metadata.xml from h
ttps://repo.maven.apache.org/maven2 was cached in the local repository, resoluti
on will not be reattempted until the update interval of central has elapsed or u
pdates are forced. Original error: Could not transfer metadata org.apache.maven.
plugins/maven-metadata.xml from/to central (https://repo.maven.apache.org/maven2
): sun.security.validator.ValidatorException: PKIX path building failed: sun.sec
urity.provider.certpath.SunCertPathBuilderException: unable to find valid certif
ication path to requested target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.094 s
[INFO] Finished at: 2016-01-13T12:48:00-06:00
[INFO] Final Memory: 13M/123M
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'exec' in the current project and in the plug
in groups [org.codehaus.mojo, org.apache.maven.plugins] available from the repos
itories [local (C:\Users\myUser\.m2\repository), central (https://repo.maven.ap
ache.org/maven2)] -> [Help 1]
org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found
for prefix 'exec' in the current project and in the plugin groups [org.codehaus.
mojo, org.apache.maven.plugins] available from the repositories [local (C:\Users
\myUser\.m2\repository), central (https://repo.maven.apache.org/maven2)]
        at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.r
esolve(DefaultPluginPrefixResolver.java:93)
        at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginF
orPrefix(MojoDescriptorCreator.java:265)
        at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDesc
riptor(MojoDescriptorCreator.java:219)
        at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalcul
ator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:103)
        at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalcul
ator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:83)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
eStarter.java:89)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
356)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundF
orPrefixException

C:\temp\TaskletJavaConfig\spring-batch-helloworld>

没有代理的证据

C:\temp\TaskletJavaConfig\spring-batch-helloworld>netsh winhttp show proxy

Current WinHTTP proxy settings:

    Direct access (no proxy server).

pom.xml

<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">
       <modelVersion>4.0.0</modelVersion>
       <groupId>com.test</groupId>
       <artifactId>spring-batch-helloworld</artifactId>
       <version>20131227</version>
       <name>spring batch hello world</name>
       <packaging>jar</packaging>

       <!-- pluginRepositories>
              <pluginRepository>
                     <id>numberformat-releases</id>
                     <url>https://raw.github.com/numberformat/20130213/master/repo</url>
              </pluginRepository>
       </pluginRepositories-->

       <properties>
              <spring.framework.version>3.2.1.RELEASE</spring.framework.version>
              <spring.batch.version>3.0.0.M2</spring.batch.version>
       </properties>

       <repositories>
              <repository>
                     <id>spring-s3</id>
                     <name>Spring Maven MILESTONE Repository</name>
                     <url>http://maven.springframework.org/milestone</url>
              </repository>
       </repositories>
       <dependencies>
              <dependency>
                     <groupId>commons-lang</groupId>
                     <artifactId>commons-lang</artifactId>
                     <version>2.6</version>
              </dependency>
              <dependency>
                     <groupId>org.springframework.batch</groupId>
                     <artifactId>spring-batch-core</artifactId>
                     <version>${spring.batch.version}</version>
              </dependency>
              <dependency>
                     <groupId>org.springframework.batch</groupId>
                     <artifactId>spring-batch-infrastructure</artifactId>
                     <version>${spring.batch.version}</version>
              </dependency>
              <dependency>
                     <groupId>log4j</groupId>
                     <artifactId>log4j</artifactId>
                     <version>1.2.17</version>
              </dependency>
              <dependency>
                     <groupId>junit</groupId>
                     <artifactId>junit</artifactId>
                     <version>4.8.2</version>
                     <scope>test</scope>
              </dependency>
              <dependency>
                     <groupId>org.springframework</groupId>
                     <artifactId>spring-tx</artifactId>
                     <version>${spring.framework.version}</version>
              </dependency>
              <dependency>
                     <groupId>org.springframework</groupId>
                     <artifactId>spring-jdbc</artifactId>
                     <version>${spring.framework.version}</version>
              </dependency>
              <dependency>
                     <groupId>hsqldb</groupId>
                     <artifactId>hsqldb</artifactId>
                     <version>1.8.0.7</version>
              </dependency>
       </dependencies>
<!-- added after Matteo recommendation-->
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
 <mainClass>org.springframework.batch.core.launch.support.CommandLineJobRunner</mainClass>
            <arguments>
                <argument>com.test.config.HelloWorldJobConfig</argument>
                <argument>helloWorldJob</argument>
            </arguments>
            </configuration>
        </plugin>
</plugins>
</build>
       <!-- build>
              <plugins>
                     <plugin>
                           <groupId>github.numberformat</groupId>
                           <artifactId>blog-plugin</artifactId>
                           <version>1.0-SNAPSHOT</version>
                           <configuration>
                                  <gitUrl>https://github.com/numberformat/wordpress/tree/master/${project.version}/${project.artifactId}</gitUrl>
                           </configuration>
                           <executions>
                                  <execution>
                                         <id>1</id>
                                         <phase>site</phase>
                                         <goals>
                                                <goal>generate</goal>
                                         </goals>
                                  </execution>
                           </executions>
                     </plugin>
              </plugins>
       </build-->

<!-- Run the application using:
mvn compile exec:java -Dexec.mainClass=org.springframework.batch.core.launch.support.CommandLineJobRunner -Dexec.args="com.test.config.HelloWorldJobConfig helloWorldJob"
-->
</project>

设置.xml

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

  <pluginGroups>
               <pluginGroup>org.codehaus.mojo</pluginGroup>
  </pluginGroups>

   <proxies>
   </proxies>
   <servers>
   </servers>
   <mirrors>
   </mirrors>
   <profiles>
  </profiles>
</settings>

只有 mvn org.codehaus.mojo 的日志

C:\temp\TaskletJavaConfig\spring-batch-helloworld>mvn org.codehaus.mojo:exec-mav
en-plugin:1.1:java
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\HP\QUICKT~1\
bin\JAVA_S~1\classes;C:\PROGRA~2\HP\QUICKT~1\bin\JAVA_S~1\classes\jasmine.jar
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-p
lugin/1.1/exec-maven-plugin-1.1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.356 s
[INFO] Finished at: 2016-01-13T15:29:20-06:00
[INFO] Final Memory: 10M/123M
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin org.codehaus.mojo:exec-maven-plugin:1.1 or one of its dependencie
s could not be resolved: Failed to read artifact descriptor for org.codehaus.moj
o:exec-maven-plugin:jar:1.1: Could not transfer artifact org.codehaus.mojo:exec-
maven-plugin:pom:1.1 from/to central (https://repo.maven.apache.org/maven2): sun
.security.validator.ValidatorException: PKIX path building failed: sun.security.
provider.certpath.SunCertPathBuilderException: unable to find valid certificatio
n path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResoluti
onException

C:\temp\TaskletJavaConfig\spring-batch-helloworld>mvn compile mvn org.codehaus.m
ojo:exec-maven-plugin:1.1:java
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\HP\QUICKT~1\
bin\JAVA_S~1\classes;C:\PROGRA~2\HP\QUICKT~1\bin\JAVA_S~1\classes\jasmine.jar
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-p
lugin/1.1/exec-maven-plugin-1.1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.250 s
[INFO] Finished at: 2016-01-13T15:31:03-06:00
[INFO] Final Memory: 11M/123M
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin org.codehaus.mojo:exec-maven-plugin:1.1 or one of its dependencie
s could not be resolved: Failed to read artifact descriptor for org.codehaus.moj
o:exec-maven-plugin:jar:1.1: Could not transfer artifact org.codehaus.mojo:exec-
maven-plugin:pom:1.1 from/to central (https://repo.maven.apache.org/maven2): sun
.security.validator.ValidatorException: PKIX path building failed: sun.security.
provider.certpath.SunCertPathBuilderException: unable to find valid certificatio
n path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResoluti
onException

最佳答案

您应该配置您的 pom 文件以至少声明 Exec Maven Plugin如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
        </plugin>
    </plugins>
</build>

因此,您将能够使用 exec:java plugin:goal 命令。


您甚至可以避免以下选项:

-Dexec.mainClass=org.springframework.batch.core.launch.support.CommandLineJobRunner -Dexec.args="com.test.config.HelloWorldJobConfig helloWorldJob"

通过在您的 POM 中将它们配置为相同插件配置的一部分,如下所示:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.1</version>
    <configuration>
        <mainClass>org.springframework.batch.core.launch.support.CommandLineJobRunner</mainClass>
        <arguments>
            <argument>com.test.config.HelloWorldJobConfig</argument>
            <argument>helloWorldJob</argument>
        </arguments>
    </configuration>
</plugin>

如您所见,我们实际上是在告诉插件在哪里可以找到主类及其参数。因此,您可以简单地调用:

mvn compile exec:java

并且它应该执行相同的预期结果。


更新1
实际上,您的 Maven 执行在访问网络上的插件元数据时遇到了麻烦:

[WARNING] Failed to retrieve plugin descriptor for org.codehaus.mojo:exec-maven- plugin:1.1: Plugin org.codehaus.mojo:exec-maven-plugin:1.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus .mojo:exec-maven-plugin:jar:1.1


更新2
如果您继续遇到插件前缀问题,那么它确实可能取决于您的网络设置。可以通过调用 Exec Maven 插件来执行快速检查,而不是通过其插件前缀 (exec),而是通过完整的限定名称,如下所示:

mvn compile mvn org.codehaus.mojo:exec-maven-plugin:1.1:java

注意模式:我们正在调用 maven,然后是 groupId:artifactId:version:goal,它们将完全相同。这将检查您的 pom 配置(和插件配置)是否正确。


更新3
如您的输出日志所示,Maven 正尝试通过 https(注意最后的“s”)访问存储库,因此通过 SSL,然后在构建输出中遇到证书问题:

sun .security.validator.ValidatorException: PKIX path building failed: sun.security. provider.certpath.SunCertPathBuilderException: unable to find valid certificatio n path to requested target

那么你有两个选择:

  • 告诉 maven 忽略 SSL 错误,如另一个 SO answer 中所述
  • 首先通过运行 mvn help:effective-settings 检查您的设置以确保您获得 maven 应用的真实设置(如果该命令实际有效),然后重新配置非 SSL 存储库您的设置与另一个选项 SO answer

关于java - 在当前项目和插件组 org.codehaus.mojo 中找不到前缀为 'exec' 的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770106/

相关文章:

java - 如何通过java将数据发布到elasticsearch?

java - 尝试将 JBPM 与 MAVEN 集成时 java.lang.NoSuchFieldError : DESCR

java - 如何在java中将对象添加到ArrayList

java - Eclipse Gradle集成无法正常工作

spring - 使用 Spring Security 的在线用户

java - 在reactor项目中运行Maven目标而不执行 "mvn install"

java - java中将一串位转换为unicode字符

java - 在 Netbeans 7.3.1 中解析文件 JSP 或 JAVA 时出错

java - Maven Javadoc 插件 - 覆盖默认 CSS 的特定部分

javascript - 如何将json文件发送到spring Controller ?