Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does maven copy subversion directories to target

Tags:

svn

maven

It does not happen all the time but sometimes I find stuff like this :

>dir /SF  target\.svn
…\target\Zeiterfassung-web\WEB-INF\.svn\.
…\target\Zeiterfassung-web\WEB-INF\.svn\..
…\target\Zeiterfassung-web\WEB-INF\.svn\lock

How could this happen as Maven as is supposed to ignore the .svn directories by default?

Can I explicitly exclude them (note the WEB-INF - it is neither source nor resource)?

Or can one put the bloody .svn data somewhere else separate from the work files (like clearcase does)?


The POM as requested (minus scm and issue management):

<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'
>
<!-- Projekt - - - - - - - - - - - - - - - - - - - - - - - - {{{1  - - - -->
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>Zeiterfassung</artifactId>
    <groupId>com.noser</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../Zeiterfassung</relativePath>
  </parent>
  <groupId>com.noser</groupId>
  <artifactId>Zeiterfassung-web</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Zeiterfassung Webapp</name>
  <description>Mobile Applikation Zeiterfassung — Web Archive/Application</description>
  <url>http://maven.apache.org</url>
  <repositories>
    <repository>
      <id>java.net2</id>
      <name>Repository hosting the jee6 artifacts</name>
      <url>http://download.java.net/maven/2</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>Zeiterfassung-lib</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-web-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.8.0</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
  <organization>
    <name>Noser Engineering AG</name>
    <url>http://www.noser.com</url>
  </organization>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - }}}1  - - - -->
<!-- Build - - - - - - - - - - - - - - - - - - - - - - - - - {{{1  - - - -->
  <build>
    <defaultGoal>package</defaultGoal>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>**/.backups/*</exclude>
          <exclude>**/.backups</exclude>
          <exclude>**/.svn/*</exclude>
          <exclude>**/.svn</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <jvmArgs>
            <jvmArg>-Xms64m</jvmArg>
            <jvmArg>-Xmx1024m</jvmArg>
          </jvmArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <encoding>${project.build.sourceEncoding}</encoding>
          <showDeprecation>true</showDeprecation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
    </plugins>
    <finalName>Zeiterfassung-web</finalName>
  </build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - }}}1  - - - -->
<!-- Profiles  - - - - - - - - - - - - - - - - - - - - - - - {{{1  - - - -->
  <profiles>
    <profile>
      <id>endorsed</id>
      <activation>
        <property>
          <name>sun.boot.class.path</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.6</source>
              <target>1.6</target>
              <encoding>${project.build.sourceEncoding}</encoding>
              <showDeprecation>true</showDeprecation>
              <compilerArguments>
                <bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
              </compilerArguments>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-endorsed-api</artifactId>
                <version>6.0</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - }}}1  - - - -->
<!-- Reporting - - - - - - - - - - - - - - - - - - - - - - - {{{1  - - - -->
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <show>private</show>
          <nohelp>true</nohelp>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - }}}1  - - - -->
<!-- Properties  - - - - - - - - - - - - - - - - - - - - - - {{{1  - - - -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compile.encoding>UTF-8</maven.compile.encoding>
    <netbeans.hint.deploy.server>gfv3ee6wc</netbeans.hint.deploy.server>
  </properties>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - }}}1  - - - -->
</project>
<!-- vim: set nowrap tabstop=8 shiftwidth=2 softtabstop=2 expandtab :-->
<!-- vim: set textwidth=0 filetype=xml foldmethod=marker spell spelllang=en_gb :-->
like image 759
Martin Avatar asked Oct 20 '10 08:10

Martin


1 Answers

I'm extremely surprised that you get .svn directories in your war (to my knowledge, scm directories are excluded by default, the excludes are hard coded in the sources). I really don't know why you get them.

That said, the following might help to work around the issue:

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

But as I said, I consider the above more as a workaround than a solution.

like image 147
Pascal Thivent Avatar answered Oct 04 '22 04:10

Pascal Thivent