依赖项缺少自己jar的Maven构建
我有一个Netbeans Maven项目。我创建了自己的字体jar文件,因为Jasper Reports不支持Cp1257。我已经将我的jar安装到本地maven repo,依赖项是通过adddependency添加的。在Netbeans中运行时,我没有任何问题——报告是使用依赖项中声明的字体创建的,并正确导出为PDF格式,但在使用maven assembly插件创建可执行jar后,我的依赖项似乎以某种方式消失或无法访问,因为。我在Netbeans Maven项目的依赖项列表中看到了我的字体文件。如果您需要更多的代码或smth,请让我知道我将添加所需的代码。 提前谢谢 jasperreports_extension.properties依赖项缺少自己jar的Maven构建,maven,jasper-reports,maven-assembly-plugin,Maven,Jasper Reports,Maven Assembly Plugin,我有一个Netbeans Maven项目。我创建了自己的字体jar文件,因为Jasper Reports不支持Cp1257。我已经将我的jar安装到本地maven repo,依赖项是通过adddependency添加的。在Netbeans中运行时,我没有任何问题——报告是使用依赖项中声明的字体创建的,并正确导出为PDF格式,但在使用maven assembly插件创建可执行jar后,我的依赖项似乎以某种方式消失或无法访问,因为。我在Netbeans Maven项目的依赖项列表中看到了我的字体文件
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory`
net.sf.jasperreports.extension.simple.font.families.ireportfamily1463309406404=fonts/fontsfamily1463309406404.xml
fontsfamily1463309406404.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="Times New Roman">
<normal><![CDATA[fonts/times.ttf]]></normal>
<bold><![CDATA[fonts/timesbd.ttf]]></bold>
<italic><![CDATA[fonts/timesbi.ttf]]></italic>
<boldItalic><![CDATA[fonts/timesi.ttf]]></boldItalic>
<pdfEncoding><![CDATA[Cp1257]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>MYAPPNAME</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<repositories>
</repositories>
<dependencies>
...
<dependency>
<groupId>my.fonts</groupId>
<artifactId>fonts2</artifactId>
<version>1.1</version>
<type>jar</type>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>forms.Login</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>create-my-bundle</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<name>MYAPPNAME</name>
</project>
4.0.0
com.mycompany
MYAPPNAME
1.0-快照
罐子
...
我的字体
fonts2
1.1
罐子
UTF-8
1.8
1.8
org.apache.maven.plugins
maven汇编插件
带有依赖项的jar
表单。登录
创建我的包
包裹
单一的
MYAPPNAME
这是否回答了您的问题?这意味着在打包过程中会覆盖jasperreports\u扩展名.properties
文件吗?为什么是Cp1257而不是Idenity-H?谢谢您的回答。我一定会试试图纳基斯的建议。Petter,Cp1257是我的编码,我认为这可能是问题所在,但为什么它在Netbeans中工作,但在编译后却不工作呢?埃尼姆加。我尝试过导出到docx和rtf,而不是PDF,效果很好。Mistery…添加了标识为H的字体。没有。仍然一样,没有波罗的海字符只有在PDF中,但在docx和rtf中,他们存在,即使shade插件没有创建jar可执行jar。我已经研究了可执行jar文件,它是用汇编插件创建的。有一个名为default.jasperreports.properties的文件。该文件中有#字体设置部分。我已经将默认的Cp1252编码更改为Cp1257,所需的字符显示在pdf中。jar文件仍然没有达到我的字体,但至少我可以在pdf中看到所需的字符。这是否回答了您的问题?这意味着在打包过程中会覆盖jasperreports\u扩展名.properties
文件吗?为什么是Cp1257而不是Idenity-H?谢谢您的回答。我一定会试试图纳基斯的建议。Petter,Cp1257是我的编码,我认为这可能是问题所在,但为什么它在Netbeans中工作,但在编译后却不工作呢?埃尼姆加。我尝试过导出到docx和rtf,而不是PDF,效果很好。Mistery…添加了标识为H的字体。没有。仍然一样,没有波罗的海字符只有在PDF中,但在docx和rtf中,他们存在,即使shade插件没有创建jar可执行jar。我已经研究了可执行jar文件,它是用汇编插件创建的。有一个名为default.jasperreports.properties的文件。该文件中有#字体设置部分。我已经将默认的Cp1252编码更改为Cp1257,所需的字符显示在pdf中。jar文件仍然没有达到我的字体,但至少我可以在pdf中看到所需的字符。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>MYAPPNAME</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<repositories>
</repositories>
<dependencies>
...
<dependency>
<groupId>my.fonts</groupId>
<artifactId>fonts2</artifactId>
<version>1.1</version>
<type>jar</type>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>forms.Login</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>create-my-bundle</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<name>MYAPPNAME</name>
</project>