كيف يمكنني تنظيف مجلد / ملفات _svn من مجلد "SRC / Main / Webapp" عندما يقوم Maven2 بإنشاء مشروع WebApp في NetBeans 6.7؟

StackOverflow https://stackoverflow.com/questions/1670658

سؤال

لقد قمت بإنشاء WebApp باستخدام النموذج الأصلي Maven2 في NetBeans 6.7.

عندما أقوم ببناء عادي (إزالة كافة تكوين البرنامج المساعد)، فإنه نسخ جميع الملفات المطلوبة بما في ذلك مجلدات "_svn". لكنني لا أريد هذه الملفات، كيف يمكنني تنظيف مجلدات / ملفات _SVN من ملف * .war ومن المجلد المستهدف المتفجر الذي يحتوي على محتوى المجلد "SRC / Webapp"؟

 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، كل ما يعمل تماما إذا قمت بإنشاء ملف جرة. ولكن مع الحرب، بعد اختبار المرحلة التي تقوم فيها بنسخ محتوى المجلد "SRC / Main / Webapp" ([حرب: حرب])، لا يمكنني العثور على طريقة لتحديد موقع التكوين / الأمر الذي يفعله هذا؟ هل هذا ينبيون؟ إنه أي من المكونات الإضافية التي أستخدمها؟ فيما يلي قسم Build of My Pom.xml، وسيساعد موضع تقدير كبير!

<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>

bascal devent - شكرا جزيلا للاستجابة. أضفت تكوين "مافن - حرب المساعد" وبدأت في القيام بالتعبئة والتغليف مرتين !!

[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 الآن على التكوين التالي ..

<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>

وما زلت أرى مجلدات _ SVN في ملفات الحرب !! ومع ذلك، بعد أن غيرت مجلدات _ SVN للمجلدات .svn، لم أحسب حتى أي تصفية الموارد !! يتجاهل تلقائيا مجلدات ".svn". أعتقد أنه يجب أن يكون هناك إعدادات في مكان ما لتعيين التفضيل من ".svn" إلى "_svn". على أي حال، فإن هذا يحل مشكلتي الأولية، ولكنه يقدم مشكلة عدم توافق الخلفية مع مشاريع بلدي القديمة .NET الخاصة بي .. :)

هل كانت مفيدة؟

المحلول

(تحرير: إجابتي الأولية اقترح استخدامها excludes في webResources وهو غير صحيح. أنا أقدم أدناه تكوين محدث لل Maven-War-Plugin هذا يستبعد حقا _svn كما طلب من قبل المرجع. تم اختبار هذا ويعمل.)

...
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <warSourceExcludes>
        **/_svn/**
      </warSourceExcludes>
    </configuration>
  </plugin>
  ...
</plugins>

لكن، سأقترح بحرارة تكوين عميل السلحفاة لاستخدامه .svn بدلاً من _svn. وبعد لا يمكنني العثور على المرجع ولكنني أعتقد أن مافن تستخدم شيئا ما يعادل <exclude>**/.svn</exclude> داخليا. لدي شك في البيان السابق. ومع ذلك، فإن الحقيقة هي أن استخدام .svn يسمح لك بتجنب أي تكوين إضافي ويجعل هذه الأشياء أكثر بساطة.

نصائح أخرى

كان هذا مفيدا بالنسبة لي، مع تصحيح واحد:
العلامة هي <packagingExcludes> (في الإصدار 2.1-Alpha-1، تم تسمية ذلك بشكل غير صحيح باسم WarsourceExcludes.)

مصدر: http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top