6

生活を楽にするために、デプロイしたアプリケーションを/deployデフォルトとは別のフォルダー ( を実行しようとすると、jar とコピーされた依存関係のみが削除され、コピーされたリソースは削除されないことを除いて、正常に動作します。classes/surefire-reportsmvn clean

更新削除されているように見えますが、すぐに元に戻されます。Eclipse と の使用に関連しているように見えますがBuild Automatically、Maven の構成を変更すると Eclipse にこのような影響が及ぶ理由はわかりません。更新を終了

更新 2現時点では、正解はありません。この問題は明らかにdeployディレクトリとはほとんど関係がありません。maven-resources-pluginは Eclipse のコピー リソースをBuild Automaticallyの一部として作成するようです。しかし、 maven-resources-plugin の使用を停止せずにこれをオフにする方法がわかりません。自動ビルドの使用を停止せずに、これを行う方法を説明できる人に報奨金を与えます。アップデート2終了

とにかく、私のディレクトリは次のようになります。

my-app
|-- pom.xml
|-- src
|   |-- main
|   |   |-- java
|   |   `-- resources
|   |       |-- script.sh
|   |       `-- config
|   |           `-- app.properties
|   `-- test
|       |-- java
|       `-- resources
`-- deploy
    |-- my-app.jar <----- This gets deleted correctly
    |-- lib        <----- This gets deleted correctly
    |   |-- dependency1.jar     <----- This gets deleted correctly
    |   |-- dependency2.jar     <----- This gets deleted correctly
    |-- config     <----- This DOES NOT get deleted correctly
    |   `-- app.properties      <----- This DOES NOT get deleted correctly
    `-- script.sh  <----- This DOES NOT get deleted correctly

ここに私のpomスニペットがあります:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>${maven.jar.version}</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>my.main.Class</mainClass>
                <packageName>my.main</packageName>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
        <excludes>
            <exclude><!-- the files I don't want in my jar --></exclude>
        </excludes>
        <outputDirectory>${basedir}/deploy</outputDirectory>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.1</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/deploy/lib</outputDirectory>
                <includeScope>compile</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>install</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/deploy</outputDirectory>
                <resources>
                    <resource>
                        <directory>${basedir}/src/main/resources</directory>
                        <filtering>false</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>deploy</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <followSymlinks>false</followSymlinks>
            </fileset>
        </filesets>
    </configuration>
</plugin>
4

7 に答える 7

7

Mavenの方法に固執し、deployディレクトリを下${basedir}/targetに置くと、問題は自動的に修正されます。クリーン プラグインのカスタム プラグイン構成も削除できます。

于 2013-08-29T13:14:00.117 に答える
2

質問がある場合はhow to disable eclipse to run specific plugin、デフォルトでアクティブになっている特定のプロファイルの下に入力できます

<project>
  ...
  <profiles>
    <profile>
      <id>not-eclipse</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
             ...
        </plugins>
      </build>
  </profile>
  ...
</project>

! not-eclipseEclipseプロジェクトのプロファイル設定に配置します

于 2013-09-04T17:35:24.060 に答える
1

問題は、リソースを含むサンプル プロジェクトで再現されます。Run As -> Maven Clean には、後で説明するように、クリーンアップのみをカバーする出力があります。

最新バージョンではこの画面process-resourcesは提供されませんが、Maven タスクの実行時にリソースを出力ディレクトリにコピーするという目標がまだ実行されていると思います。

なぜ、Sonatype の本で言及されているのに、プラグインがまだそれらのオプションを表示しないのだろうか。

私の以前のプロジェクトでは、主要なタスクがコマンドラインから処理されるため、リソース処理を回避するために、プロジェクト構成を更新するときに実行するゴールからprocess-resourcesを削除していました。

お役に立てれば。

PS:あなたの問題は、デプロイ ディレクトリの変更とは何の関係もないと思います。

Apache Maven 3.0.4 (r1232337; 2012-01-17 14:14:56+0530)
Maven home: C:\projects\workspace\abc\EMBEDDED
Java version: 1.7.0_04, vendor: Oracle Corporation
Java home: C:\Java\jre7
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from EMBEDDED\conf\settings.xml
[DEBUG] Reading user settings from C:\Users\stackoverflow\.m2\settings.xml
[DEBUG] Using local repository at C:\Users\stackoverflow\.m2\repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for C:\Users\stackoverflow\.m2\repository
[INFO] Scanning for projects...
[DEBUG] Extension realms for project abc:abc:jar:0.0.1-SNAPSHOT: (none)
[DEBUG] Looking up lifecyle mappings for packaging jar from ClassRealm[plexus.core, parent: null]
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: abc:abc:jar:0.0.1-SNAPSHOT
[DEBUG] Tasks:   [clean]
[DEBUG] Style:   Regular
[DEBUG] =======================================================================
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Test 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] === PROJECT BUILD PLAN ================================================
[DEBUG] Project:       abc:abc:0.0.1-SNAPSHOT
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): []
[DEBUG] Repositories (dependencies): [central (http://repo.maven.apache.org/maven2, releases)]
[DEBUG] Repositories (plugins)     : [central (http://repo.maven.apache.org/maven2, releases)]
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean (default-clean)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <directory default-value="${project.build.directory}"/>
  <excludeDefaultDirectories default-value="false">${clean.excludeDefaultDirectories}</excludeDefaultDirectories>
  <failOnError default-value="true">${maven.clean.failOnError}</failOnError>
  <followSymLinks default-value="false">${clean.followSymLinks}</followSymLinks>
  <outputDirectory default-value="${project.build.outputDirectory}"/>
  <reportDirectory default-value="${project.reporting.outputDirectory}"/>
  <skip default-value="false">${clean.skip}</skip>
  <testOutputDirectory default-value="${project.build.testOutputDirectory}"/>
  <verbose>${clean.verbose}</verbose>
</configuration>
[DEBUG] =======================================================================
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ abc ---
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG]   Imported: org.apache.maven.wagon.events < plexus.core
...
Lots of such lines
...
[DEBUG]   Imported: org.codehaus.plexus.* < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.personality < plexus.core
[DEBUG] Populating class realm maven.api
[DEBUG] org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1:
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.6:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:2.0.5:compile
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-clean-plugin:2.4.1
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-clean-plugin:2.4.1
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-clean-plugin:2.4.1
[DEBUG]   Included: org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:2.0.5
[DEBUG]   Excluded: org.apache.maven:maven-plugin-api:jar:2.0.6
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-clean-plugin:2.4.1, parent: sun.misc.Launcher$AppClassLoader@769fe666]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean' with basic configurator -->
[DEBUG]   (f) directory = C:\projects\rollbase2.0workspace\abc\target
[DEBUG]   (f) excludeDefaultDirectories = false
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) followSymLinks = false
[DEBUG]   (f) outputDirectory = C:\projects\rollbase2.0workspace\abc\target\classes
[DEBUG]   (f) reportDirectory = C:\projects\rollbase2.0workspace\abc\target\site
[DEBUG]   (f) skip = false
[DEBUG]   (f) testOutputDirectory = C:\projects\rollbase2.0workspace\abc\target\test-classes
[DEBUG] -- end configuration --
[DEBUG] Skipping non-existing directory C:\projects\rollbase2.0workspace\abc\target
[DEBUG] Skipping non-existing directory C:\projects\rollbase2.0workspace\abc\target\classes
[DEBUG] Skipping non-existing directory C:\projects\rollbase2.0workspace\abc\target\test-classes
[DEBUG] Skipping non-existing directory C:\projects\rollbase2.0workspace\abc\target\site
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.693s
[INFO] Finished at: Sun Sep 01 16:38:36 IST 2013
[INFO] Final Memory: 4M/121M
[INFO] ------------------------------------------------------------------------
于 2013-09-01T11:24:34.997 に答える
0

次のファイルセットを maven-clean-plugin セクションに追加します

<fileset>
    <directory>${basedir}/deploy/config</directory>
</fileset>
于 2013-08-29T00:28:03.523 に答える
-1

Eclipse から呼び出されているように見えMaven Builderます。Eclipse は、再びファイルを取り込みます。Eclipse でプロジェクトの Maven ビルダーと Maven の性質を無効にして、問題が解決するかどうかを確認できると思います。

Eclipse Maven ビルダーを無効にするには、次の場所に移動します。

Eclipse Project Properties -> Builders -> Maven builder

日食mavenの性質を無効にする ここに画像の説明を入力

私が言っているのは、問題はEclipseとMavenの統合によるものであり、Mavenではありません

于 2013-09-03T11:52:30.933 に答える