我创建了一个Maven项目,并添加了我所需的依赖项。当我尝试构建项目时,出现以下错误:
我的依赖关系确实显示org.apache.poi
库在那里:
其中包括必备软件包:
以下是我的包含:
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
我对Java相对较新,对Maven来说很新,但是当我右键单击时
Dependencies
和Add Dependency
,我输入相应的groupID和ArtifactID及版本(as listed in Maven Central),然后自动下载文件。不确定我还缺少什么。任何帮助表示赞赏。
编辑:我应该注意到我也尝试过手动安装工件并得到相同的结果。
编辑:这是我的pom.xml
文件的依赖项部分。我很好奇为什么maven只增加了两个,当我有更多的lib时,但这似乎是另一个问题。这里列出了POI,它是编译器抱怨的那个。
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
<type>pom</type>
</dependency>
</dependencies>
答案 0 :(得分:1)
因此,解决方案仍然是解决方案,因为奇怪且特定于站点的解决方案。基本上就是这样的情况:我在一家普通开发人员都在其开发环境中使用Windows的公司工作。它们具有特定的配置,允许它们穿过公司代理,以便它们可以访问外部maven存储库,这些配置不是其他人拥有的。因此,Eclipse(这里的普通IDE)等工具无法通过代理下载。作为以前的Linux系统管理员,我能够在Linux VM中使用NetBeans解决代理问题。然而,问题是我使用的所有maven配置都是基于Windows的,这是我最终在settings.xml文件中修复的内容:
<localRepository>c:\.m2\repository</localRepository>
应该是
<localRepository>.m2/repository</localRepository>
在Linux中。一旦我注意到了,并且更改了设置(和目录名称),它每次都能完美运行。感谢所有回复的人。
答案 1 :(得分:1)
有时,在编辑pom时Netbeans会感到困惑,并且无法从maven下载。只需对项目进行“清理并构建”,它将下载依赖项。
答案 2 :(得分:0)
尝试使用import org.apache.*;
并删除所有手动导入。以防万一...
此外,请确保您使用此site
中的相关信息我使用您的依赖项从Eclipse进行了测试,使用Maven clean配置并成功运行
答案 3 :(得分:0)
到目前为止,我在环境中发布的配置没有错误。我觉得它与你的类路径和/或Netbeans 非类路径依赖有关,但我无法确定,因为我没有必要的项目可见性。 GUI是否将var path = require('path');
var resolve = path.resolve;
var AssetsPlugin = require('assets-webpack-plugin');
var WebpackCleanupPlugin = require("webpack-cleanup-plugin");
'use strict';
var babelOptions = {
"presets": [
[
"es2015",
{
"modules": false
}
],
"es2016"
]
};
module.exports = [{
cache: true,
context: resolve('Scripts'),
devtool: "source-map",
entry: {
site: './site.ts',
},
output: {
path: path.resolve(__dirname, './dist/scripts'),
filename: '[name].bundle.js',
},
module: {
rules: [{
test: /\.ts$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: babelOptions
},
{
loader: 'ts-loader'
}
]
}, {
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: babelOptions
}
]
}]
},
plugins: [
new AssetsPlugin({ path: path.resolve(__dirname, './dist/assets') }),
new WebpackCleanupPlugin({})
],
}];
元素添加到您的POM.xml中?
因此,我不会试图通过问题和答案来发现您遇到的问题,而是会发布一个标准方法来设置此项目供您比较。