如何使用节俭生成器作为 Maven 依赖项(如何避免引用 .exe 文件)?
How to use thrift generator as maven dependency(how to avoid reference to .exe file)?
我在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 依赖项?怎么样?
所以,我认为你的问题的答案是,"No, there's not really a way to avoid having the path to the executable delivered to the plugin."
我能建议的最接近的是这样的:
在你的 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
,因此每个 developer/builder 都需要在他们的机器上安装 thrift 并为自己定义 属性。这样 Mac 或 Linux 主机就不会在尝试查找 Windows 卷等时卡住。
请参阅 Maven documentation 以了解有关配置文件的更多详细信息及其方便的原因。
我在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 依赖项?怎么样?
所以,我认为你的问题的答案是,"No, there's not really a way to avoid having the path to the executable delivered to the plugin."
我能建议的最接近的是这样的:
在你的 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
,因此每个 developer/builder 都需要在他们的机器上安装 thrift 并为自己定义 属性。这样 Mac 或 Linux 主机就不会在尝试查找 Windows 卷等时卡住。
请参阅 Maven documentation 以了解有关配置文件的更多详细信息及其方便的原因。