使用maven将OSGi包导出到特定文件夹

时间:2014-01-08 12:30:41

标签: maven bundle

任何人都可以指导我如何将生成的OSGi包复制到磁盘上的其他位置?

我正在使用maven构建OSGi包。


完整解决方案:2014年1月9日更新: 我有一个更好的方法并使用以下插件更新pom.xml

      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    <executions>
      <execution>
        <id>copy-installed</id>
        <phase>install</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>${project.groupId}</groupId>
              <artifactId>${project.artifactId}</artifactId>
              <version>${project.version}</version>
              <type>${project.packaging}</type>
            </artifactItem>
          </artifactItems>
          <outputDirectory>some-other-place</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

一旦捆绑生成完成,我就可以复制了,我也可以给目标文件夹。

2 个答案:

答案 0 :(得分:2)

您希望何时复制捆绑包?

假设您有一个生成捆绑包的项目,那么它应该在您的目标文件夹中可用,并且还将在您的本地存储库(〜/ .m2 / repository / ...)中安装(运行mvn install)。 / p>

您可以使用cp命令将其复制到任何您想要的位置。

将其作为构建的一部分部署到测试文件夹不一定是个好主意:您的构建依赖于机器特定设置或魔法注入属性。也就是说,如果你想这样做,我将使用以下方法:

  1. 有一个单独的maven项目,它取决于捆绑包,只需将其部署到任何你喜欢的地方
  2. 定义一个指定目标目录的属性(您可以在命令行上传递它,在settings.xml中定义它或在您的pom.xml中提供默认值)
  3. 在部署项目中使用maven-dependency-plugin:copy-dependency目标来复制捆绑包

答案 1 :(得分:0)

猜猜这个问题与OSGi没有多大关系,更多的是与maven有关...也许你可以查看maven资源插件,特别是http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html,它可以帮助你复制任意资源。