标签: maven-resources-plugin

Maven构建不会过滤Intellij中的属性

我有一个问题,当我从Intellij 15.0.2运行Maven构建时,Maven Resources Plugin不会将我的属性过滤到我的文件中.当我mvn compile从Windows命令行运行时,它确实有效.我的插件配置是:

<properties>
    <prop1>aaa</prop1>
    <prop2>bbb</prop2>
</properties>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>file1</include>
                <include>file2</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</configuration>
<executions>
    <execution>
        <phase>compile</phase>
        <goals>
            <goal>resources</goal>
        </goals>
    </execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

filtering properties intellij-idea maven maven-resources-plugin

7
推荐指数
1
解决办法
3640
查看次数

Maven Resources插件符号链接处理

src/test/resourcesmaven项目的文件夹中,有一个相对的符号链接.
使用2.6插件版本,将复制实际文件.
更新到3.0.1版本后,它会复制链接而不是文件,并在后续运行(不干净)失败(mvn -e显示它是因为a FileAlreadyExistsException).
是否有任何配置选项来恢复以前版本的行为?
我同意,将链接作为测试资源是一个非常糟糕的主意.

maven-resources-plugin

7
推荐指数
1
解决办法
867
查看次数

Maven资源插件过滤不起作用

我有一个POM,其中包含以下内容:

<properties>
    <prop1>xxxxxxxxxx</prop1>
</properties>
<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <resources>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
 </build>
Run Code Online (Sandbox Code Playgroud)

我在下面有一个属性文件src/test/resources

p1=${prop1}
Run Code Online (Sandbox Code Playgroud)

我的目标是将.properties文件复制到target/test-classes目录中并自动更改p1的值。但这行不通。它复制资源,但不更改值。

maven maven-resources-plugin

7
推荐指数
1
解决办法
4722
查看次数

maven-resources-plugin 和 project.build.resources 标签有什么区别?

我很难理解Maven 中的maven-resources-pluginproject.build.resources标签之间的区别。

两者似乎都有相同的目的。[resources、testResources 和 copy-resources]的不同目标maven-resources-plugin也可以使用 resources 标签来实现:

<resources>
  <resource>  
    <directory>src/dir</directory>
    <targetPath>dest/dir</targetPath>
  </resource>  
</resources>

<testResources>
  <testResource>
  <directory>src/test/dir</directory>
  </testResource>
Run Code Online (Sandbox Code Playgroud)

并且使用<resources>标签可以有效地将源目录中的指定文件复制到目标目录,copy-resources类似于maven-resources-plugin.

那么,它们之间有什么区别吗?
它们在任何特定场景下的功能会有所不同吗?

maven maven-resources-plugin

6
推荐指数
1
解决办法
2556
查看次数

找不到工件 org.apache.maven.plugins:maven-resources-plugin

我正在尝试构建 Maven 项目,但根本无法正常工作。

这是我的 POM.xml

    <<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.Data.Maven</groupId>
  <artifactId>Hadoop</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
   </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
        </plugin> 
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.4</version>
        </plugin>  
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
        </plugin>                 
      </plugins>
    </pluginManagement>   
</build>
</project>
Run Code Online (Sandbox Code Playgroud)

设置.xml

<repositories>
   <repository>
      <id>cloudera</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
      <releases>
         <enabled>true</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </repository>
   <repository>
      <id>central</id>
      <url>http://repo.maven.apache.org/maven2/</url>
   </repository>
   <repository>
      <id>forplay-legacy</id>
      <url>http://forplay.googlecode.com/svn/mavenrepo</url>
   </repository>
   <repository>
      <id>org.apache.maven.plugins</id>
      <url>https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin</url>
   </repository>
   <repository>
      <id>org.apache.maven.plugins</id>
      <url>https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin</url>
   </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

错误

[错误] 插件 org.apache.maven.plugins:maven-compiler-plugin:3.1 或其依赖项之一无法解析:无法读取 org.apache.maven.plugins:maven-compiler-plugin:jar 的工件描述符:3.1:无法从中央( https://repo.maven.apache.org/maven2 )传输工件org.apache.maven.plugins:maven-compiler-plugin:pom:3.1:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须非空

错误说它无法从 …

java maven maven-resources-plugin

6
推荐指数
1
解决办法
3万
查看次数

Maven可以"导入"资源依赖吗?

在几个项目中,我有一些我想要共享的资源(特别是Flyway数据库迁移脚本).

是否有可能将这些共享资源作为Maven工件存在,并且在构建之前Maven解析该依赖关系并将工件的内容解压缩到/src/main/resources/?如果是这样,怎么会这样呢?

resources maven maven-resources-plugin

5
推荐指数
1
解决办法
4924
查看次数

复制单个文件然后使用maven-resources-plugin重命名 - 可能吗?

我使用maven-resources-plugin从不同的项目树复制单个WSDL文件,如下所示:

<execution>
    <id>copy-wsdl-and-rename-it</id>
    <phase>validate</phase>
    <goals>
        <goal>copy-resources</goal>
    </goals>
    <configuration>
        <outputDirectory>${basedir}/src/main/wsdl</outputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/../myws/src/main/wsdl</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </configuration>
</execution>
Run Code Online (Sandbox Code Playgroud)

这很好用,但现在我需要将该wsdl目录下的(单个)文件重命名为其他内容(例如,从myws.wsdl源目录到my.wsdl目标目录).

有没有办法实现这一点,使用maven-resources-plugin,而不是诉诸另一个插件?

maven maven-resources-plugin

5
推荐指数
1
解决办法
1万
查看次数

maven-resources-plugin 将资源副本中断到测试类

通常,我的 POM 文件工作正常,所有单元测试都通过,所有工件都正确打包。但是,一旦我添加了这个 maven-resources-plugin 来根据配置文件创建特定的配置,我的所有测试都会失败,因为“src/test/resources”中的任何内容都没有被复制到“test-classes”:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>${project.build.directory}/${config.dir}/${project.activeProfiles[1].id}</outputDirectory>
                <resources>
                    <filtering>true</filtering>
                    <resource>
                        <directory>src/main/resources</directory>
                    </resource>
                </resources>
            </configuration>
        </plugin>   
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这会阻止测试资源的复制。有任何想法吗?

maven maven-resources-plugin

5
推荐指数
1
解决办法
1877
查看次数

Maven原型-由于冒号而导致的速度错误

由于其中一种资源中存在冒号(':'),因此我无法创建Maven原型。我有一个包含该符号的Spring XML:

<property name="maxSize" value="${ws.client.pool.maxSize:5}"/>
Run Code Online (Sandbox Code Playgroud)

启动原型时,出现以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate 
(default-cli) on project standalone-pom: 
org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates: 
Encountered ":5}\"/>\n\t</bean>\n\t\n\t<bean id=\"fooServiceClient\" class=\"org.springframework.aop.framework.ProxyFactoryBean\">\n\t    <property name=\"targetSource\" ref=\"fooServiceClientPoolTargetSource\"/>\n\t</bean>\n\n</beans>\n" 
at line 15, column 69 of archetype-resources/src/main/resources/spring/library.ws-client.xml
[ERROR] Was expecting one of:
[ERROR] "}" ...
[ERROR] <DOT> ...
[ERROR] "(" ...
[ERROR] -> [Help 1]
[ERROR] 
Run Code Online (Sandbox Code Playgroud)

我尝试在原型的pom中配置转义字符:

    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            <!-- Resources configuration -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <escapeString>\</escapeString>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
Run Code Online (Sandbox Code Playgroud)

但是它仍然不起作用。在这种情况下:

<property name="maxSize" value="${ws.client.pool.maxSize\:5}"/> …
Run Code Online (Sandbox Code Playgroud)

java maven-3 maven maven-resources-plugin maven-archetype

5
推荐指数
2
解决办法
1893
查看次数

Maven默认资源不复制资源

这是我的项目目录结构:

在此输入图像描述

这是我的 pom.xml:

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>borsa</groupId>
<artifactId>borsa</artifactId>
<version>1</version>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
    <finalName>aggiornamento</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>
                            ${project.build.directory}/dist/libs
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <outputDirectory>${basedir}/target/dist</outputDirectory>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>libs/</classpathPrefix>
                        <mainClass>
                            borsa.Application
                        </mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>org.jsoup</groupId> …
Run Code Online (Sandbox Code Playgroud)

java eclipse m2eclipse maven maven-resources-plugin

5
推荐指数
1
解决办法
1万
查看次数