使用java 1.8构建maven项目,但使用java 1.7运行它

时间:2016-11-30 21:00:25

标签: java maven

我有一个需要使用java 1.8构建的Google App Engine项目。构建完成后,我需要运行Web应用程序,但使用Java 1.7。

这可以从我正在使用java 1.8构建的eclipse中正常工作,然后我可以配置运行配置以在运行时使用JRE 1.7:

enter image description here

但是如何从命令行执行相同操作?目前我(从命令行):

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?

我想我可以编写一个类似于:

的脚本
  1. 运行 mvn clean install
  2. 将当前会话的JDK设置为1.7
  3. 运行网络应用程序(现在在java 1.7下)
  4. 但是在pom.xml中有没有一种maven方法呢?

2 个答案:

答案 0 :(得分:1)

答案 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。