没有主类的春季靴子

时间:2017-10-22 18:15:31

标签: java spring spring-boot

我正在尝试使用Spring Boot,并创建一个jar,并将其安装到我的maven repo中。

这是一个库jar文件,它将在我的主应用程序中用作依赖项,它也是一个Spring-Boot应用程序。现在,我正在研究一个问候世界的例子。这是我在这个项目中的一个课程:

void Main()
{
    using (var stream = new MemoryStream())
    using (var writer = new StreamWriter(stream))
    using (var reader = new StreamReader(stream))
    using (var csv = new CsvReader(reader))
    {
        writer.WriteLine("FirstName,LastName");
        writer.WriteLine("\"Jon\"hn\"\",\"Doe\"");
        writer.WriteLine("\"Jane\",\"Doe\"");
        writer.Flush();
        stream.Position = 0;

        var good = new List<Test>();
        var bad = new List<string>();
        var isRecordBad = false;
        csv.Configuration.BadDataFound = context =>
        {
            isRecordBad = true;
            bad.Add(context.RawRecord);
        };
        while (csv.Read())
        {
            var record = csv.GetRecord<Test>();
            if (!isRecordBad)
            {
                good.Add(record);
            }

            isRecordBad = false;
        }

        good.Dump();
        bad.Dump();
    }
}

public class Test
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

我的POM基本上是这样的:

public class MyLibrary {

  public String getMessage() {
    return "Hello World!";
  }
}

但是当我尝试构建时,我得到'无法找到主类“错误。这对我来说非常有意义,但是如何让spring成为一个库jar。我知道我可以添加一个Application.java一个主要的方法,但这不是我想要的,我想要一个简单的jar文件,但是所有的Spring-Boot注释,注入等...

我该怎么做呢?春天的靴子不是我想要的吗?

1 个答案:

答案 0 :(得分:15)

我确信您在pom.xml中使用了spring-boot-maven-plugin(如下所示),它允许您打包可执行jar或war档案并运行应用程序。

有了这个插件,spring会搜索一个主应用程序。你不需要itplugin来进行Spring库项目。删除此插件并清理安装。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

我假设您在此库项目中创建了一些弹簧配置文件或组件。你可能不需要大胖的弹簧靴启动器。但是如果你需要多个弹簧模块并且你想要一个所有依赖的地方那么它很好。