设置library.type
为static
并运行mvn -X clean compile
时,DEBUG 输出显示:
[调试] Execute:Java13CommandLauncher: 执行 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl' 参数:
''
'/c'
'/nologo'
'/EHsc'
'/ DNDEBUG'
'/MD'
'/GR'
...
包括/MD
恕我直言不应该出现在这里。这同样适用于使用 set to 编译测试可执行文件和使用set test.link
tostatic
编译源文件。我会使用的唯一情况是编译链接到共享库的可执行文件时。test.link
shared
/MD
尽管 maven 生成了一个静态库并且测试运行没有错误,但_DLL
在代码中设置定义会混淆我__declspec(dllexport/dllimport)
用于编译共享库的宏,并且在静态情况下根本不需要。
任何人都可以给我一个提示,我是否正在监督某些事情,或者这可能是一个插件错误?
该示例取自网站上的示例并对其进行了修改,并将 pom 文件剥离到最小it0010-lib-static
:com.github.maven-nar
pom.xml:
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.5.1</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>static</type>
</library>
</libraries>
<linker>
<name>msvc</name>
</linker>
<tests>
<test>
<name>HelloWorldTest</name>
<link>static</link>
</test>
</tests>
</configuration>
</plugin>
</plugins>
</build>