我在pom.xml
中具有以下内容:
...
<dependencies>
...
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.11.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.thrift.tools</groupId>
<artifactId>maven-thrift-plugin</artifactId>
<version>0.1.11</version>
<configuration>
<thriftExecutable>D:/work/thrift-folder/thrift-0.11.0.exe</thriftExecutable>
<thriftSourceRoot>../thrift-files</thriftSourceRoot>
<generator>java</generator>
</configuration>
<executions>
<execution>
<id>thrift-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
一切正常,但我不希望在源代码中引用.exe
文件:
<thriftExecutable>D:/work/thrift-folder/thrift-0.11.0.exe</thriftExecutable>
是否可以改用Maven依赖项?怎么样?
答案 0 :(得分:1)
所以,我认为您的问题的答案是:“不,实际上没有一种方法可以避免将可执行文件的路径传递给插件。”
我建议的最接近的是这样的:
在您的pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.thrift.tools</groupId>
<artifactId>maven-thrift-plugin</artifactId>
<version>0.1.11</version>
<configuration>
<thriftExecutable>${myProps.thriftExec}</thriftExecutable>
<thriftSourceRoot>../thrift-files</thriftSourceRoot>
<generator>java</generator>
</configuration>
<executions>
<execution>
<id>thrift-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后,在构建用户的~/.m2/settings.xml
中:
<profiles>
<profile>
<id>thrift-build</id>
<properties>
<myProps.thriftExec>D:/work/thrift-folder/thrift-0.11.0.exe</myProps.thriftExec>
</properties>
</profile>
</profiles>
现在,您可以检入pom.xml,并且其中没有任何特定于计算机的路径。为了执行构建,需要定义属性myProps.thriftExec
,因此每个开发人员/构建者都需要在自己的计算机上安装thrift并为其定义该属性。这样一来,Mac或Linux主机就不会因为试图找到Windows卷等而卡住。
有关个人资料及其使用方便的更多信息,请参见Maven documentation。