Maven手记

不断记录,就不会忘了…

打包成可执行jar

官方文档:https://maven.apache.org/plugins/maven-jar-plugin/
在之前可能会遇到找不到主类的问题:

[jimo@jimo-pc target]$ java test-app-1.0-SNAPSHOT.jar
Error: Could not find or load main class test-app-1.0-SNAPSHOT.jar
[jimo@jimo-pc target]$ java -jar test-app-1.0-SNAPSHOT.jar
no main manifest attribute, in test-app-1.0-SNAPSHOT.jar

解决办法:需要在pom.xml里配置

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
        ...
      </plugin>
    </plugins>
  </build>
  ...
</project>

当然这种方法需要自定义清单文件,更简单的是直接定义入口类:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.jimo.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
  </build>

其中com.jimo.App包含main方法,是整个程序的入口。

然后重新构建jar包再执行:

[jimo@jimo-pc test-app]$ mvn clean install
[jimo@jimo-pc target]$ java -jar test-app-1.0-SNAPSHOT.jar
Hello World!
当你在Maven项目中操作Excel文件,依然可以利用Apache POI库。在Maven项目中,你需要在pom.xml文件中添加相应的POI依赖,例如: ```xml <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version> <!-- 更新至最新稳定版本 --> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.0.0</version> <!-- 可能还需要poi核心库,取决于具体需求 --> </dependency> </dependencies> ``` 然后,你可以在代码中按照之前提供的步骤,导入所需的包并编写读取和合并Excel文件的逻辑。Maven的依赖管理会自动处理库的引入和版本更新。 例如,你可以创建一个Maven插件或者在src/main/java目录下编写一个Java类,用来遍历指定目录下的Excel文件,并执行数据提取和合并: ```java import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.poi.ss.usermodel.*; public class ExcelMergeMojo extends AbstractMojo { private final String directoryPath; public ExcelMergeMojo(String directoryPath) { this.directoryPath = directoryPath; } @Override public void execute() throws MojoExecutionException { File dir = new File(directoryPath); if (!dir.exists()) { getLog().warn("Directory not found: " + directoryPath); return; } // 搜索并处理Excel文件 for (File file : dir.listFiles((dir1, name) -> name.endsWith(".xls") || name.endsWith(".xlsx"))) { mergeData(file.getAbsolutePath()); } } private void mergeData(String filePath) { // 根据之前提到的`extractData`函数,处理单个文件 // ... } } ``` 然后,在你的pom.xml文件中配置此插件: ```xml <build> <plugins> <plugin> <groupId>com.mycompany</groupId> <artifactId>excel-merge-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <executions> <execution> <id>merge-excel-files</id> <phase>process-resources</phase> <goals> <goal>merge</goal> </goals> <configuration> <directoryPath>${project.build.directory}/input</directoryPath> <!-- 输入目录 --> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 这只是一个基础的例子,实际应用可能会根据你的具体需求有所不同,比如错误处理、并发处理等。记得在运行前确认Apache POI的版本是否满足项目的需要。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值