2012-12-05 6 views
8

Aşağıdaki yapılandırmaya sahip:Kopya bağımlılıkları hedefi sırasındaki maven bağımlılık eklentisini kullanarak, test ve derleme arasındaki eserleri bölmenin bir yolu var mı?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
      <id>analyze</id> 
      <goals> 
       <goal>analyze-only</goal> 
      </goals> 
      <configuration> 
       <failOnWarning>false</failOnWarning> 
      </configuration> 
     </execution> 
     <!--Copy the dependencies so ant build has the same versions--> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.basedir}/lib</outputDirectory> 
       <overWriteIfNewer>true</overWriteIfNewer> 
       <stripVersion>true</stripVersion> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>true</overWriteSnapshots> 
       <excludeTransitive>false</excludeTransitive> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Yukarıdaki yapılandırma aynı klasörde her şeyi döker. Ben test yapılandırmasını ekleyerek Test kapsamını hariç çalıştı ama bir hata veriyor:

Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.6:copy-dependencies (copy-dependencies) on project pcgen: Can't exclude Test scope, this will exclude everything.

farklı klasörlere kopyalayabilirsiniz böylece geri kalanından Test bağımlılıkları ayırmak için bir yolu var mı?

+0

Neden yapmak istiyorsunuz? Neden Maven'i Ant yerine kullanmıyorsun? – khmarbaise

+1

Sadece kontrolümün bir gereği. Şu anda proje ANT'den Maven'e taşınıyor ve her ikisi de göç devam ederken çalışmaya devam etmem gerekiyor. Maven ile onların kurulumunu yeniden yaratmaya çalışıyorum. – javydreamercsw

cevap

8

I tried excluding the test scope by adding the test configuration but gives an error

Bunun için çok farklı nedenlerden ötürü tökezledim, ama sanırım ikimizi de buldum. Örneğin bunu deneyin. Elbette mevcut dizinde pom.xml'ye ihtiyacınız olacak.

mvn dependency:copy-dependencies \ 
-DincludeScope=runtime \ 
-DexcludeScope=provided \ 
-DoutputDirectory=target/war/WEB-INF/lib 

Maven Dependency Plugin Issue #128 yazar Brian Fox, A büyük gecikmiş teşekkür:

2013 Mayıs ayında

You shouldn't ever need to include or exclude two scopes at the same time because they are comprised of each other. The default is to include test scope, which includes everything. If you don't want any test dependencies or provided dependencies, then include runtime and exclude provided.

The scopes being interpreted are the scopes as maven sees them, not as specified in the pom. So the "test" scope includes everything, runtime includes compile but not provided etc.

, includeScope documentation was updated için: gerçekten

/** 
    * Scope to include. An Empty string indicates all scopes (default). 
    * The scopes being interpreted are the scopes as 
    * Maven sees them, not as specified in the pom. In summary: 
    * <ul> 
    * <li><code>runtime</code> scope gives runtime and compile dependencies,</li> 
    * <li><code>compile</code> scope gives compile, provided, and system dependencies,</li> 
    * <li><code>test</code> (default) scope gives all dependencies,</li> 
    * <li><code>provided</code> scope just gives provided dependencies,</li> 
    * <li><code>system</code> scope just gives system dependencies.</li> 
    * </ul> 
    * 
    * @since 2.0 
    */ 
@Parameter(property = "includeScope", defaultValue = "") 
protected String includeScope; 
0

kullanım includeScope, test kapsamı her içermektedir kapsamı, bu yüzden başarısız olur.

<includeScope>runtime</includeScope> 
İlgili konular