我在以下内容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依赖项?怎么样?
因此,我认为您的问题的答案是:“不,实际上没有一种方法可以避免将可执行文件的路径传递给插件。”
我能建议的最接近的是这样的:
在您的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文档,以获取有关配置文件及其使用方便的更多详细信息。
问题内容: 有没有一种方法可以将类型依赖项添加到我的POM并获取其所有模块? JavaMail是一个很好的例子。Maven Central Repo的父POM名为:com.sun.mail:all:1.5.0,模块包括:mail,mailapi,mailapijar,smtp,imap,gimap,pop3和dsn。 但是,“所有”人工制品只有一个文件: 是否可以将“所有”人工制品添加为对我的PO
问题内容: 我在MySQL中使用触发器存在一些问题。 假设我们有2个表: 表A 表B 和2个触发器: TriggerA:在TableA上删除并更新TableB时触发 TriggerB:在TableB上删除并在TableA中删除时触发 问题是,当我删除TableB中的某些行时,TriggerB触发并删除TableA中的某些元素,然后TriggerA触发并尝试更新TableB。 它失败,因为Trigg
是否可以从pom.xml引用本地Gradle项目作为Maven项目的本地依赖项? 搜索很容易给我一个相反的结果--“如何从gradle Builds引用maven项目”,但不是我的情况。
问题内容: 我有一个简单的java项目,需要外部jar。我使用netbeans进行构建,在执行Clean and Build命令后,可以在dist目录中找到以下结构: 我会说典型的。 现在,我想将带有依赖库的myApp.jar分发为一个exe。这可能吗?我正在尝试使用Launch4J。在GUI中,我创建了配置文件, cp 部分中有一些选项 但它似乎是类路径,它是我可以引用的额外jar的唯一位置。
谢谢你的帮助。
我下载了一个Maven项目,可以运行来构建目标helloworld。jar,它依赖于多个第三方运行时jar。但是,我不知道如何使用Maven将这些第三方JAR自动复制到特定目录中。查看pom。xml,我发现了以下语句。因此,基本上我希望将第三方JAR复制到。要做到这一点,我应该使用哪个maven插件/短语/目标?有人能给我看一个可运行的maven语法吗?谢谢