Java JBoss的Maven构建失败,如7 Hello world示例
我正在努力学习本教程: 但是,当遵循清理+生成包的简单说明时,会出现生成错误: gert@gert-VirtualBox:~/workspace/jboss-eap-6.1.0.GA-quickstarts/helloworld$ mvn清理包[信息]扫描项目。。。[错误]生成 无法读取1个项目->[Help 1][ERROR][ERROR]项目 quickstarts:jboss as helloworld:7.1.2-SNAPSHOT (/home/gert/workspace/jboss-eap-6.1.0.GA quickstarts/helloworld/pom.xml) 有4个错误[错误]不可解析的导入POM:找不到 org.jboss.spec:jboss-javaee-6.0:pom:3.0.2.Final-redhat-3 in 缓存在本地 在更新之前,不会重新尝试解析 第68行的中心间隔已过或强制更新, 第25列->[帮助2] 我根本没有编辑过pom.xml文件——这难道不管用吗 我在谷歌上搜索了一下,发现了这个: 但我好像哪里都没有设置文件 请,任何帮助都将不胜感激 格万托 POM文件: http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0Java JBoss的Maven构建失败,如7 Hello world示例,java,maven,jboss,Java,Maven,Jboss,我正在努力学习本教程: 但是,当遵循清理+生成包的简单说明时,会出现生成错误: gert@gert-VirtualBox:~/workspace/jboss-eap-6.1.0.GA-quickstarts/helloworld$ mvn清理包[信息]扫描项目。。。[错误]生成 无法读取1个项目->[Help 1][ERROR][ERROR]项目 quickstarts:jboss as helloworld:7.1.2-SNAPSHOT (/home/gert/workspace/jboss
<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>
org.jboss.as.quickstarts
jboss作为helloworld
7.1.2-快照
战争
JBoss作为快速入门:Helloworld
JBoss作为快速入门:Helloworld
http://jboss.org/jbossas
Apache许可证,版本2.0
回购
http://www.apache.org/licenses/LICENSE-2.0.html
UTF-8
7.3.3最终版本
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>
2.3.1
2.1.1
1.6
1.6
org.jboss.spec
jboss-javaee-6.0
${version.org.jboss.spec.jboss.javaee.6.0}
聚甲醛
进口
javax.enterprise
CDIAPI
假如
org.jboss.spec.javax.annotation
jboss-annotations-api_1.1_规范
假如
org.jboss.spec.javax.servlet
jboss-servlet-api_3.0_规范
假如
jboss作为helloworld
maven战争插件
${version.war.plugin}
假的
org.jboss.as.plugins
jboss作为maven插件
${version.org.jboss.as.plugins.maven.plugin}
maven编译器插件
${version.compiler.plugin}
${maven.compiler.source}
${maven.compiler.target}
您可能必须创建一个(有关更多详细信息,请参阅):
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>
org.jboss.spec
jboss-javaee-6.0
3.0.2.3最终版本
聚甲醛
进口
取消对以下行的注释也可能有效:
<version.org.jboss.spec.jboss.javaee.6.0>3.0.2.Final
</version.org.jboss.spec.jboss.javaee.6.0>
3.0.2.Final
好的,下面是修复它的方法:
注释了pom.xml中的这一行:(我认为这是一种自动插入/替换为eclipse/something的变量类型,结果证明不是这样):
替换为:
<version>3.0.2.Final</version>
3.0.2.Final
它现在已经构建好了,我可以很好地部署它,感谢Nishant的帮助!如果您从github存储库克隆quickstarts,例如
git clone --recursive git://github.com/jboss-jdf/jboss-as-quickstart.git --branch jdf-2.1.9.Final
见:
然后,您将在根目录中找到一个maven settings.xml文件(./jboss as quickstart/settings.xml)
对于每个示例,使用该设置文件运行maven:
cd jboss-as-quickstart
cd helloworld
mvn -s ..\settings.xml compile
请参阅:删除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>
org.jboss.spec
jboss-javaee-6.0
3.0.2.3最终版本
聚甲醛
进口
javax.enterprise
CDIAPI
1.0-SP4
假如
org.jboss.spec.javax.annotation
jboss-annotations-api_1.1_规范
1.0.1.最终版本
假如
org.jboss.spec.javax.servlet
jboss-servlet-api_3.0_规范
1.0.2.1最终版本
假如
谢谢Nishant-知道我可以在这个settings.xml文件中放些什么来帮助解决这个问题吗?它似乎找不到jboss-javaee-6.0工件,但我可以看到它在这里:@user446043我想问题在于你的pom.xml
中有一个随机字符串3.0.2.Final-redhat-3
。这个文件上没有工件使用此版本的页面。请先尝试硬编码版本解决方案。
<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>