Rus*_*man 6 eclipse maven-2 maven-archetype
我有一个工作或大部分工作的POM,它可以获取所有我正在编写Facelets应用程序的JAR.我正在使用m2eclipse.当我导入新Maven创建的应用程序时,它会干预并且或多或少地按预期进行,但是,它不像动态Web项目那样,当我尝试运行它时,它不提供Run As - > Run on Server选项.
我已经研究了其他可以在服务器上运行的Maven生成的Eclipse项目,它们可以工作(但是没有设置我想要的JAR组合).例如,这个工作,但它没有我想要的JAR:
mvn archetype:generate -DarchetypeArtifactId = maven-archetype-webapp\-DgroupId = package-name -DartifactId = project-name
我是否需要创建一个自定义原型artifactId模仿...- DarchetypeArtifactId = maven-archetype-webapp ...我在上面的命令中看到,如果是这样,怎么样?
或者它仅仅是该原型设置的文件系统的功能?我看到我生成的项目(webapp1)......
webapp1
|-- src
| `-- main
| |-- java
| |-- resources
| `-- webapp
| `-- WEB-INF
`-- target
`-- classes`
...与使用maven-archetype-webapp生成的内容有不同的内容,但我不知道如何强制mvn eclipse:清除eclipse:eclipse生成它(或者这是否告诉Eclipse这是一个Web应用程序,它应该设置为运行方式 - >在服务器上运行).
simpleWeb
|-- src
| `-- main
| |-- java
| | `-- com
| | `-- mytutorial
| |-- resources
| | `-- com
| | `-- mytutorial
| `-- webapp
| |-- META-INF
| |-- pages
| `-- WEB-INF
`-- target
|-- classes
| `-- com
| `-- mytutorial
|-- maven-archiver
|-- META-INF
| `-- maven
| `-- com.mytutorial
| `-- simpleWeb
|-- pages
|-- simpleWeb
| |-- META-INF
| |-- pages
| `-- WEB-INF
| |-- classes
| | `-- com
| | `-- mytutorial
| `-- lib
|-- surefire
|-- test-classes
`-- WEB-INF
|-- classes
| `-- com
| `-- mytutorial
`-- lib
非常感谢能够让我走上启蒙之路的人们.
拉斯
PS这是我的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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.etretatlogiciels.webapp1</groupId>
<artifactId>webapp1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>webapp1 Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<commons-beanutils-version> 1.8.3 </commons-beanutils-version>
<commons-codec-version> 1.4 </commons-codec-version>
<commons-collections-version> 3.2.1 </commons-collections-version>
<commons-digester-version> 2.1 </commons-digester-version>
<commons-discovery-version> 0.4 </commons-discovery-version>
<commons-logging-version> 1.1.1 </commons-logging-version>
<jsf-facelets-version> 1.1.15 </jsf-facelets-version>
<myfaces-version> 2.0.4 </myfaces-version>
<richfaces-version> 3.3.3.Final </richfaces-version>
</properties>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- Apache Commons -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils-version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec-version}</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons-collections-version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>${commons-digester-version}</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>${commons-discovery-version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging-version}</version>
</dependency>
<!-- Facelets -->
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>${jsf-facelets-version}</version>
</dependency>
<!-- MyFaces -->
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>${myfaces-version}</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>${myfaces-version}</version>
</dependency>
<!-- RichFaces -->
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api-jsf2</artifactId>
<version>${richfaces-version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl-jsf2</artifactId>
<version>${richfaces-version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-ui-jsf2</artifactId>
<version>${richfaces-version}</version>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>webapp1</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>richfaces</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven2.repository</id>
<name>Repository for Maven by Maven</name>
<url>http://repo2.maven.org/maven2</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
<repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/1</url>
<layout>legacy</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
<repository>
<id>JBoss Repository Old</id>
<name>Repository for Maven by JBoss</name>
<url>http://repository.jboss.org/maven2</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
<repository>
<id>JBoss Repository Nexus</id>
<name>Repository for Maven by JBoss</name>
<url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
</profile>
</profiles>
</project>
Run Code Online (Sandbox Code Playgroud)
小智 7
我有完全相同的问题.现有的原型都不符合我的需求.如果我从自定义原型创建(来自eclipse)项目,它将不会成为动态Web项目.如果你运行mvn -Dwtpversion = 2.0 eclipse:eclipse它会再添加你不需要的各种东西.所以经过调查,我最终发现了什么侮辱了"动态网络项目".它是.setjects目录中的一堆目录和文件以及.project中的条目.
所以你需要做的是:
1)在eclipse中创建一个空的(非maven)动态web项目.
2.)在不添加任何文件或任何其他更改的情况下,在文件系统上检查由eclipse创建的以下文件(相对于项目目录)
:.project
.settings/org.eclipse.jdt.core.prefs
.settings/org. eclipse.wst.common.project.facet.core.prefs.xml
.settings/org.eclipse.wst.jsdt.ui.superType.name
.settings/org.eclipse.jst.jsp.core.prefs
.settings/org. eclipse.wst.common.project.facet.core.xml
.settings/org.eclipse.wst.common.component
.settings/org.eclipse.wst.jsdt.ui.superType.container
3.)将这些文件复制到自定义archetime的archetype-resources目录中
.4.编辑并概括复制的文件(用$ {artifactId}替换实际项目名称等...
5.)在archetype-metadata.xml文件中加:
<fileSet encoding="UTF-8" filtered="true">
<directory></directory>
<includes>
<include>.project</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>.settings</directory>
</fileSet>
Run Code Online (Sandbox Code Playgroud)
没有这个maven将不会上传以".*"开头的文件
6.)瞧!安装并部署您的原型,然后重试.它对我有用.
小智 7
如何在archetype-resources/pom.xml中配置maven-eclipse-plugin?
<build>
<finalName>archetype-javaee5-webapp</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)
这将在eclipse中创建一个支持Web的项目
| 归档时间: |
|
| 查看次数: |
19389 次 |
| 最近记录: |