【问题标题】:Maven Build Failure For JBoss AS 7 Hello world exampleJBoss AS 7 Hello world 示例的 Maven 构建失败
【发布时间】:2013-12-03 19:33:49
【问题描述】:

我正在尝试遵循本教程: https://docs.jboss.org/author/display/AS7/Helloworld+quickstart

但是按照简单说明清理 + 构建包时出现构建错误:

gert@gert-VirtualBox:~/workspace/jboss-eap-6.1.0.GA-quickstarts/helloworld$ mvn clean package [INFO] 正在扫描项目... [ERROR] 构建 无法读取 1 个项目 -> [Help 1] [ERROR] [ERROR] 该项目 org.jboss.as.quickstarts:jboss-as-helloworld:7.1.2-SNAPSHOT (/home/gert/workspace/jboss-eap-6.1.0.GA-quickstarts/helloworld/pom.xml) 有 4 个错误 [ERROR] Non-resolvable import POM: Failure to find org.jboss.spec:jboss-javaee-6.0:pom:3.0.2.Final-redhat-3 在 http://repo.maven.apache.org/maven2 被缓存在本地 存储库,在更新之前不会重新尝试解析 中心间隔已过或在第 68 行强制更新, 第 25 列 -> [帮助 2]

我根本没有编辑 pom.xml 文件 - 这不应该正常工作吗?

我在谷歌上搜索了一下,发现了这个:https://community.jboss.org/message/762371#762371 但是我好像没有设置文件?

请,任何帮助将不胜感激!

gvanto

POM 文件:

http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0

<groupId>org.jboss.as.quickstarts</groupId>
<artifactId>jboss-as-helloworld</artifactId>
<version>7.1.2-SNAPSHOT</version>
<packaging>war</packaging>
<name>JBoss AS Quickstarts: Helloworld</name>
<description>JBoss AS Quickstarts: Helloworld</description>

<url>http://jboss.org/jbossas</url>
<licenses>
    <license>
        <name>Apache License, Version 2.0</name>
        <distribution>repo</distribution>
        <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
    </license>
</licenses>

<properties>
    <!-- Explicitly declaring the source encoding eliminates the following 
        message: -->
    <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
        resources, i.e. build is platform dependent! -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- JBoss dependency versions -->

    <version.org.jboss.as.plugins.maven.plugin>7.3.Final</version.org.jboss.as.plugins.maven.plugin>

    <!-- <version.org.jboss.spec.jboss.javaee.6.0>3.0.2.Final</version.org.jboss.spec.jboss.javaee.6.0>

--> 3.0.2.Final-redhat-3

    <!-- other plugin versions -->
    <version.compiler.plugin>2.3.1</version.compiler.plugin>
    <version.war.plugin>2.1.1</version.war.plugin>

    <!-- maven-compiler-plugin -->
    <maven.compiler.target>1.6</maven.compiler.target>
    <maven.compiler.source>1.6</maven.compiler.source>
</properties>

<dependencyManagement>
    <dependencies>
        <!-- Define the version of JBoss' Java EE 6 APIs we want to use -->
        <!-- JBoss distributes a complete set of Java EE 6 APIs including
            a Bill of Materials (BOM). A BOM specifies the versions of a "stack" (or
            a collection) of artifacts. We use this here so that we always get the correct
            versions of artifacts. Here we use the jboss-javaee-6.0 stack (you can
            read this as the JBoss stack of the Java EE 6 APIs). You can actually
            use this stack with any version of JBoss AS that implements Java EE 6, not
            just JBoss AS 7! -->
        <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-6.0</artifactId>
            <version>${version.org.jboss.spec.jboss.javaee.6.0}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>

    <!-- Import the CDI API, we use provided scope as the API is included in JBoss AS 7 -->
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the Common Annotations API (JSR-250), we use provided scope 
        as the API is included in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.annotation</groupId>
        <artifactId>jboss-annotations-api_1.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the Servlet API, we use provided scope as the API is included in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.servlet</groupId>
        <artifactId>jboss-servlet-api_3.0_spec</artifactId>
        <scope>provided</scope>
    </dependency>

</dependencies>

<build>
    <!-- Set the name of the war, used as the context root when the app 
        is deployed -->
    <finalName>jboss-as-helloworld</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>${version.war.plugin}</version>
            <configuration>
                <!-- Java EE 6 doesn't require web.xml, Maven needs to catch up! -->
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <!-- JBoss AS plugin to deploy war -->
        <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>${version.org.jboss.as.plugins.maven.plugin}</version>
        </plugin>
        <!-- Compiler plugin enforces Java 1.6 compatibility and activates 
            annotation processors -->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${version.compiler.plugin}</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

【问题讨论】:

    标签: java maven jboss


    【解决方案1】:

    好的,这就是修复它的方法:

    在 pom.xml 中注释掉了这一行:(我认为这是一种由 eclipse/something 自动插入/替换的变量,结果证明它不是):

    <!--                 <version>${version.org.jboss.spec.jboss.javaee.6.0}</version> -->
    

    替换为:

    <version>3.0.2.Final</version>
    

    它现在可以构建,我可以很好地部署它,感谢 Nishant 的帮助!

    【讨论】:

      【解决方案2】:

      如果您从 github 存储库克隆快速入门,例如

      git clone --recursive git://github.com/jboss-jdf/jboss-as-quickstart.git --branch jdf-2.1.9.Final
      

      见:http://www.jboss.org/jdf/quickstarts/get-started/

      然后你会在根目录下找到一个maven settings.xml文件(./jboss-as-quickstart/settings.xml)

      对于每个示例,使用该设置文件运行 maven:

      cd jboss-as-quickstart
      cd helloworld
      mvn -s ..\settings.xml compile
      

      见:http://www.jboss.org/jdf/quickstarts/jboss-as-quickstart/#configure-maven

      【讨论】:

        【解决方案3】:

        您可能需要创建一个(有关详细信息,请参阅this page):

        settings.xml 文件可能存在两个位置:

        • Maven 安装:$M2_HOME/conf/settings.xml
        • 用户安装:${user.home}/.m2/settings.xml

        但我觉得问题在于依赖项的版本字符串。对版本进行硬编码,然后重试:

        <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-6.0</artifactId>
            <version>3.0.2.Final</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        

        取消注释以下行也可能有效:

        <version.org.jboss.spec.jboss.javaee.6.0>3.0.2.Final
            </version.org.jboss.spec.jboss.javaee.6.0>
        

        【讨论】:

        • 感谢 Nishant - 知道我可以在这个 settings.xml 文件中添加什么来帮助解决这个问题吗?似乎找不到 jboss-javaee-6.0 工件,但我可以看到它在这里:search.maven.org/#search%7Cga%7C1%7Cjboss-javaee-6.0
        • @user446043 我认为问题在于您的pom.xml 中有一个随机字符串3.0.2.Final-redhat-3。此版本的页面上没有工件。先试试硬编码版本解决方案。
        【解决方案4】:

        删除redHat“后缀”解决了这个问题,只有实际的jar名称,而不是redHat后缀。

        在你的 pom.xml 中有以下依赖,那么它将成功构建。

             <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>org.jboss.spec</groupId>
                        <artifactId>jboss-javaee-6.0</artifactId>
                        <version>3.0.2.Final</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                </dependencies>
            </dependencyManagement>
        
            <dependencies>
                <dependency>
                    <groupId>javax.enterprise</groupId>
                    <artifactId>cdi-api</artifactId>
                    <version>1.0-SP4</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>org.jboss.spec.javax.annotation</groupId>
                    <artifactId>jboss-annotations-api_1.1_spec</artifactId>
                    <version>1.0.1.Final</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>org.jboss.spec.javax.servlet</groupId>
                    <artifactId>jboss-servlet-api_3.0_spec</artifactId>
                    <version>1.0.2.Final</version>
                    <scope>provided</scope>
                </dependency>
              </dependencies>
        

        【讨论】:

          猜你喜欢
          • 2014-08-15
          • 1970-01-01
          • 2012-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-18
          • 2012-04-29
          相关资源
          最近更新 更多