我正在尝试在idlj-maven-plugin的Maven项目中包含Corba .idl文件。 .idl文件指定了某个模块,例如
module Tester
{
interface Test {
void sayHello();
}
}
并且我希望生成的类属于包com.mycompany.tester
。我尝试使用
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>idlj-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<debug>true</debug>
<compiler>jacorb</compiler>
<sourceDirectory>../../idl</sourceDirectory>
<source>
<packageTranslations>
<packageTranslation>
<type>Tester</type>
<package>com.mycompany.tester</package>
</packageTranslation>
</packageTranslations>
</source>
</configuration>
</plugin>
但是它似乎完全没有效果。我也尝试将idlj
用作<compiler>
,或使用
<additionalArguments>
<additionalArgument>
-i2jpackage Tester:com.mycompany.tester
</additionalArgument>
</additionalArguments>
但似乎没有任何作用。
任何想法?
我设法使所有内容都以这种方式工作:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>idlj-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<debug>true</debug>
<compiler>jacorb</compiler>
<sourceDirectory>../../idl</sourceDirectory>
<sources>
<source>
<additionalArguments>
<list>-i2jpackage</list>
<list>Tester:com.mycompany.tester</list>
</additionalArguments>
</source>
</sources>
</configuration>
</plugin>
[我使用<compiler>idlj</compiler>
时代替<additionalArguments>
:
<additionalArguments>
<list>-pkgTranslate</list>
<list>Tester</list>
<list>com.mycompany.tester</list>
</additionalArguments>
使用命令idlj更容易
==== your tester.idl ====
module tester
{
interface Test {
void sayHello();
}
}
===========================
您可以将idlj与选项-pkgPrefix
一起使用,以将Java文件生成到某个程序包,如下所示
idlj -pkgPrefix tester com.mycompany -fall tester.idl
尽管idlj-maven-plugin用法页面中的示例另有说明,但您必须将source选项包装在sources元素中:
<configuration>
<compiler>jacorb</compiler>
<sources>
<source>
<packagePrefix>com.acme</packagePrefix>
</source>
</sources>
</configuration>