我有一个需要使用java 1.8构建的Google App Engine项目。构建完成后,我需要运行Web应用程序,但使用Java 1.7。
这可以从我正在使用java 1.8构建的eclipse中正常工作,然后我可以配置运行配置以在运行时使用JRE 1.7:
但是如何从命令行执行相同操作?目前我(从命令行):
const Multer = require('multer'), gcloudStorage = require('./vendors/gcloud');
class ImageUploader {
constructor() {
this.bucket = gcloudStorage;
}
uploadFile(req, res, next) {
if(!req.file) {
next();
}
this.bucket.upload(req.file.path, (err, file) => {
if(err) throw new Error(err);
req.file.publicUrl = this.getExternalUrl(req.file.name)
})
}
uploadFilePromise(path) {
return new Promise((resolve, reject) => {
this.bucket.upload(path, (err, file) => {
if(err) reject(err);
resolve(file.name);
})
})
}
getExternalUrl(filename) {
return new Promise((resolve, reject) => {
this.bucket.file(filename).getSignedUrl({
action: 'read',
expires: '03-17-2025'
}, (err, url) => {
if (err) reject(err);
resolve(url);
});
});
}
storage() {
return Multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
cb(null, Date.now() + file.originalname)
}
});
}
getMulter() {
return require('multer')({ storage: this.storage() });
}
}
module.exports = ImageUploader;
当运行最后一个命令,启动应用程序时,我收到错误:
mvn clean install
mvn appengine:devserver_start
这似乎与我使用java 1.8运行的事实有关: How to deal with App Engine Devserver exception due to FormatStyle restricted class?
我想我可以编写一个类似于:
的脚本但是在pom.xml中有没有一种maven方法呢?
答案 0 :(得分:1)
你需要的是maven所拥有的toolchains。
有很多文档/教程:
Documentation for toolchains - Maven Site
Documentation for toolchains - Mojohaus
How to appoint specific jdk version for maven to build my project
答案 1 :(得分:0)
您可以配置maven编译器插件以生成符合任何特定版本的目标:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
详细信息:https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
您可以将目标设置为1.7。