在Maven中使用不同版本的库构建模块

时间:2012-02-01 12:11:54

标签: java netbeans maven build dependencies

我有一个Netbeans模块(Module.jar),在pom.xml上声明了很多依赖项:

<groupId>com.company</groupId>
<artifactId>module</artifactId>
<packaging>nbm</packaging>
...
<dependency>
    <groupId>org.netbeans.api</groupId>
    <artifactId>org-netbeans-modules-editor-lib</artifactId>
    <version>${netbeans.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.netbeans.api</groupId>
    <artifactId>org-netbeans-modules-editor-lib2</artifactId>
    <version>${netbeans.version}</version>
</dependency>
...
<properties>
    <netbeans.version>RELEASE701</netbeans.version>
</properties>

如您所见,版本被声明为变量netbeans.version

现在我有两个使用此模块的Netbeans平台应用程序:ApplicationA使用NB平台版本6.9.1而ApplicationB使用NB平台7.0.1。两者都会将Module声明为依赖:

<dependency>
    <groupId>com.company</groupId>
    <artifactId>module</artifactId>
    <version>3.0.10</version>
</dependency>

Module可以很好地编译平台的两个版本,但只有在使用当前应用程序使用的相同版本的lib编译时才能正常运行(即,Module只能正常运行ApplicationA如果使用版本6.9.1编译,并且只有在使用版本7.0.1编译时才能在ApplicationB上正常运行。)

我如何/在哪里定义变量netbeans.version,因此Module将根据将使用它的应用程序使用适当版本的lib进行编译?

1 个答案:

答案 0 :(得分:1)

您应该在应用程序和应用程序的诗歌中直接包含netbeans依赖项和正确的版本。这样您就可以获得此应用程序所需的确切版本。