用MyEclipse建立maven web项目有关问题
用MyEclipse建立maven web项目问题
我用的是maven3.0.4版本的,不是MyEclipse自带的,我新建一个maven项目,过程是new-》MavenProject next next到了选择
模板界面,我想建立一个web项目,所以我选择的Archetype的Artiface Id是maven-archtype-webapp version是 RELEASE
然后next 配置groupID等等,最后点击完成,问题来了,报错说我缺maven-war-plugin-2.1-alpha-1,ok行,我
看中央版本库没有,我就去网上下了个2.1-alpha-1版本的maven-war-plugin,然后安装到本地仓库中,完了然后重复上面步骤,最后一步点击完成,这次报错说是Failed to create project. java.lang.NullPointerException ,然后项目也没建成
功,这个问题我是真的不知道是怎么回事了,整了好久,实在整不出来,还请给位大哥指点指点。
还有个问题就是,我建立一个MAVEN项目的过程中如果说缺XX版本插件,然后中央仓库也没有,那我是不是得一个一个去网上下啊,然后再安装,这岂不是烦死了。。。有没有什么办法 在建立项目前就配置好需要的插件的版本,这样就可以自动去中央仓库下了,不知道有没有这样的配置地方呢?
------解决方案--------------------
首先,在myeclipse中新建maven工程,我没有弄过,我是用maven命令手动创建。(一般公司构建多模块工程也应该是这样。)
我说说用命令创建吧:
1、你本机如果没有你自己的maven中央仓库(暂且叫法跟你一样),又没有repository(mavenbe本地仓库),那么你就只能自己修改pom,配置maven中央仓库地址(可以配置多个,比如maven2,jboss的)。这样,当你通过命令构建多模块工程的时候,所需要的jar将全部从你配置的maven中央仓库下载。(如果你不配置,则会默认从重要仓库下载。其实一般是,在局域网内,配置公司的中央库,然后建maven工程的时候,先去公司的库download,没有,再去外网download。)。下载的jar将会放置在.m2下repository中(这就是maven本地仓库)。
举个例子,假如我要新建一个多模块工程,有三个模块,分别为:sm-api,sm-service,sm-web,则最外层有一个pom,内容为:
我用的是maven3.0.4版本的,不是MyEclipse自带的,我新建一个maven项目,过程是new-》MavenProject next next到了选择
模板界面,我想建立一个web项目,所以我选择的Archetype的Artiface Id是maven-archtype-webapp version是 RELEASE
然后next 配置groupID等等,最后点击完成,问题来了,报错说我缺maven-war-plugin-2.1-alpha-1,ok行,我
看中央版本库没有,我就去网上下了个2.1-alpha-1版本的maven-war-plugin,然后安装到本地仓库中,完了然后重复上面步骤,最后一步点击完成,这次报错说是Failed to create project. java.lang.NullPointerException ,然后项目也没建成
功,这个问题我是真的不知道是怎么回事了,整了好久,实在整不出来,还请给位大哥指点指点。
还有个问题就是,我建立一个MAVEN项目的过程中如果说缺XX版本插件,然后中央仓库也没有,那我是不是得一个一个去网上下啊,然后再安装,这岂不是烦死了。。。有没有什么办法 在建立项目前就配置好需要的插件的版本,这样就可以自动去中央仓库下了,不知道有没有这样的配置地方呢?
------解决方案--------------------
首先,在myeclipse中新建maven工程,我没有弄过,我是用maven命令手动创建。(一般公司构建多模块工程也应该是这样。)
我说说用命令创建吧:
1、你本机如果没有你自己的maven中央仓库(暂且叫法跟你一样),又没有repository(mavenbe本地仓库),那么你就只能自己修改pom,配置maven中央仓库地址(可以配置多个,比如maven2,jboss的)。这样,当你通过命令构建多模块工程的时候,所需要的jar将全部从你配置的maven中央仓库下载。(如果你不配置,则会默认从重要仓库下载。其实一般是,在局域网内,配置公司的中央库,然后建maven工程的时候,先去公司的库download,没有,再去外网download。)。下载的jar将会放置在.m2下repository中(这就是maven本地仓库)。
举个例子,假如我要新建一个多模块工程,有三个模块,分别为:sm-api,sm-service,sm-web,则最外层有一个pom,内容为:
<?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>sm</groupId>
<artifactId>sm-pom</artifactId>
<packaging>pom</packaging>
<name>sm-pom</name>
<version>1.0-SNAPSHOT</version>
- <profiles>
- <profile>
<id>web</id>
- <activation>
- <property>
<name>web</name>
</property>
</activation>
- <modules>
<module>sm-api</module>
<module>sm-service</module>
<module>sm-web</module>
</modules>
</profile>
</profiles>
- <!-- 變量、屬性聲明
-->
- <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.0.5.RELEASE</spring.version>
<junit.version>4.8.2</junit.version>
<jsf.version>2.1</jsf.version>
<jdk.version>1.6</jdk.version>
- <!-- Database settings, also defined in src/main/jdbc.properties for easy
IDE testing
-->
<hibernate.dialect>org.hibernate.dialect.MySQLDialect</hibernate.dialect>
<jdbc.groupId>mysql</jdbc.groupId>
<jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
<jdbc.version>5.1.13</jdbc.version>
<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
</properties>
- <build>
- <plugins>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4</version>
- <configuration>
<useFile>false</useFile>
<trimStackTrace>true</trimStackTrace>
<printSummary>true</printSummary>
<disableXmlReport>true</disableXmlReport>
</configuration>
</plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
- <configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
- <plugin>
<artifactId>maven-source-plugin</artifactId>
- <configuration>
<aggregate>false</aggregate>
</configuration>
- <executions>
- <execution>
<phase>package</phase>
- <goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
- <configuration>
<buildOutputDirectory>target/classes</buildOutputDirectory>
<downloadJavadocs>false</downloadJavadocs>
<downloadSources>true</downloadSources>