首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当maven2在netbeans 6.7中构建webapp项目时,我如何从‘src/ _svn /webapp’文件夹中清理webapp文件夹/文件?

当maven2在netbeans 6.7中构建webapp项目时,我如何从‘src/ _svn /webapp’文件夹中清理webapp文件夹/文件?
EN

Stack Overflow用户
提问于 2009-11-04 06:48:13
回答 2查看 1.8K关注 0票数 1

我在NetBeans6.7中使用maven2原型创建了一个6.7应用程序。

当我进行普通构建(删除所有插件配置)时,它会复制所有需要的文件,包括'_svn‘文件夹。但是我不想要这些文件,我如何从*.war文件和包含‘src/ _svn /webapp’文件夹内容的分解目标文件夹中清理webapp文件夹/文件?

代码语言:javascript
复制
 T E S T S
-------------------------------------------------------
Running com.project.project.taglib.SSTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[war:war]
Packaging webapp
Assembling webapp[project-servlets] in
[C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets]
Processing war project
Copying webapp resources[C:\ROOT\1utils\project\project-servlets\trunk\src\main\webapp]
Webapp assembled in[735 msecs]
Building war: C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets.war
[install:install]
Installing C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets.war
to C:\LOCALREPO\.m2\com\project\project-servlets\1.0.0\project-servlets-1.0.0.war

我已经成功地在pom.xml中使用了资源过滤来过滤_svn文件,如果我正在创建一个jar文件,所有这些都可以很好地工作。但是对于war,在测试阶段之后,它复制了'src/main/webapp‘文件夹的内容(war:war),我似乎找不到一种方法来定位哪个配置/命令执行此操作?是netbeans吗?这是我正在使用的插件吗?这是我的pom.xml的构建部分,非常感谢您的帮助!!

代码语言:javascript
复制
<project>
.. ...
<build>
<resources>
<resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <excludes>
        <exclude>_svn/**/*</exclude>
    </excludes>
</resource>
</resources>
<testResources>
<testResource>
    <directory>src/test/resources</directory>
    <filtering>true</filtering>
    <excludes>
        <exclude>_svn/**/*</exclude>
    </excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
    <execution>
        <id>copy-resources</id>
        <phase>validate</phase>
        <goals>
            <goal>copy-resources</goal>
        </goals>
        <configuration>
        <outputDirectory>${basedir}/target/project-servlets/WEB-INF</outputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>_svn/**/*</exclude>
                </excludes>
            </resource>
        </resources>
        </configuration>
    </execution>
</executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <verbose>true</verbose>
        <source>1.5</source>
        <target>1.5</target>
    </configuration>
</plugin>
</plugins>
<finalName>project-servlets</finalName>
</build>
..
..
</project>

@Pascal Thivent -非常感谢您的回复。我添加了'maven-war-plugin‘配置,它开始打包两次!!

代码语言:javascript
复制
[war:war] Packaging webapp 
Assembling webapp[project-servlets] in [C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets] 
Processing war project 
Copying webapp resources[C:\ROOT\1utils\frg\project-servlets\trunk\src\main\webapp] 
Webapp assembled in[391 msecs] 
Building war: C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets.war [war:war] 
Packaging webapp 
Assembling webapp[project-servlets] in [C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets] 
Dependency[Dependency {groupId=log4j, artifactId=log4j, version=1.2.8, type=jar}] has changed (was Dependency {groupId=log4j, artifactId=log4j, version=1.2.8, type=jar}). 
Dependency[Dependency {groupId=com.frg, artifactId=project, version=1.1.7, type=jar}] has changed (was Dependency {groupId=com.frg, artifactId=project, version=1.1.7, type=jar}). 
Dependency[Dependency {groupId=com.frg, artifactId=commons, version=1.0.3, type=jar}] has changed (was Dependency {groupId=com.frg, artifactId=commons, version=1.0.3, type=jar}). 
Dependency[Dependency {groupId=net.sourceforge.jtds, artifactId=jtds, version=1.2.2, type=jar}] has changed (was Dependency {groupId=net.sourceforge.jtds, artifactId=jtds, version=1.2.2, type=jar}). 
Processing war project

pom文件现在具有以下配置。

代码语言:javascript
复制
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<executions>
    <execution>
        <id>war</id>
        <phase>package</phase>
        <goals><goal>war</goal></goals>
        <configuration>
          <webResources>
            <resource>
            <directory>src/main/webapp</directory>
             <excludes>
              <exclude>_svn/**/*</exclude>
              <exclude>**/_svn/**</exclude>
             </excludes>
            </resource>
          </webResources>
        </configuration>
    </execution>
</executions>
</plugin>

我仍然在war文件中看到_ svn文件夹!!但是,在我将_ svn文件夹更改为.svn文件夹后,我甚至不需要任何资源过滤!!它会自动忽略'.svn‘文件夹。我认为应该在某个地方设置从'.svn‘到'_svn’的首选项。无论如何,这确实解决了我最初的问题,但引入了与旧的.NET版本项目的向后不兼容问题。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-04 08:47:57

(编辑:我最初的回答是建议在webResources中使用excludes,这是不正确的。我在下面提供了maven-war-plugin的更新配置,根据OP的要求,它实际上排除了_svn。这已经过测试,并且工作正常。)

代码语言:javascript
复制
...
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <warSourceExcludes>
        **/_svn/**
      </warSourceExcludes>
    </configuration>
  </plugin>
  ...
</plugins>

但是,我强烈建议您将您的.svn客户端配置为使用_svn. 而不是我找不到参考资料,但我相信maven在内部使用了与<exclude>**/.svn</exclude>等同的东西。我对先前的声明有疑问。然而,事实是,使用.svn可以避免任何额外的配置,从而使事情变得简单得多。

票数 2
EN

Stack Overflow用户

发布于 2010-12-13 21:28:17

这对我很有用,但有一个更正:

标记是<packagingExcludes> (在版本2.1-alpha-1中,这被错误地命名为warSourceExcludes)。

来源:http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1670658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档