{"action":"created","issue":{"url":"https://api.github.com/repos/spring-projects/spring-boot/issues/8821","repository_url":"https://api.github.com/repos/spring-projects/spring-boot","labels_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/8821/labels{/name}","comments_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/8821/comments","events_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/8821/events","html_url":"https://github.com/spring-projects/spring-boot/issues/8821","id":219612228,"number":8821,"title":"Provide opinionated Spring Boot Gradle Plugin","user":{"login":"rwinch","id":362503,"avatar_url":"https://avatars3.githubusercontent.com/u/362503?v=3","gravatar_id":"","url":"https://api.github.com/users/rwinch","html_url":"https://github.com/rwinch","followers_url":"https://api.github.com/users/rwinch/followers","following_url":"https://api.github.com/users/rwinch/following{/other_user}","gists_url":"https://api.github.com/users/rwinch/gists{/gist_id}","starred_url":"https://api.github.com/users/rwinch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwinch/subscriptions","organizations_url":"https://api.github.com/users/rwinch/orgs","repos_url":"https://api.github.com/users/rwinch/repos","events_url":"https://api.github.com/users/rwinch/events{/privacy}","received_events_url":"https://api.github.com/users/rwinch/received_events","type":"User","site_admin":false},"labels":[{"id":272169180,"url":"https://api.github.com/repos/spring-projects/spring-boot/labels/for:%20team-attention","name":"for: team-attention","color":"c5def5","default":false},{"id":293438798,"url":"https://api.github.com/repos/spring-projects/spring-boot/labels/status:%20waiting-for-triage","name":"status: waiting-for-triage","color":"fef2c0","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-04-05T14:57:32Z","updated_at":"2017-04-14T23:47:51Z","closed_at":"2017-04-14T23:47:51Z","body":"It would be nice if Spring Boot could bring to the build what it has to applications. An opinionated view which allows getting started with minimum fuss. This could be solved by providing an opinionated Gradle plugin and a base plugin that requires additional configuration. \r\n\r\nThis would also better align with Boot's goals which [states](http://docs.spring.io/spring-boot/docs/1.5.x/reference/htmlsingle/#getting-started-introducing-spring-boot)\r\n\r\n> We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. \r\n\r\nThis also aligns with Gradle's conventions of using [base plugins](https://docs.gradle.org/current/userguide/standard_plugins.html#sec:base_plugins).\r\n\r\nSo something like this provides lots of options:\r\n\r\n\r\n```\r\napply plugin: 'java'\r\napply plugin: 'eclipse'\r\napply plugin: 'org.springframework.boot-base'\r\napply plugin: 'io.spring.dependency-management'\r\n\r\nversion = '0.0.1-SNAPSHOT'\r\nsourceCompatibility = 1.8\r\n\r\nrepositories {\r\n\tmavenCentral()\r\n\tmaven { url \"https://repo.spring.io/snapshot\" }\r\n\tmaven { url \"https://repo.spring.io/milestone\" }\r\n}\r\n\r\n\r\ndependencies {\r\n\tcompile('org.springframework.boot:spring-boot-starter-web')\r\n\ttestCompile('org.springframework.boot:spring-boot-starter-test')\r\n}\r\n```\r\n\r\nAnd this provides something more concise:\r\n\r\n```\r\napply plugin: 'org.springframework.boot'\r\n\r\nversion = '0.0.1-SNAPSHOT'\r\n\r\ndependencies {\r\n\tcompile('org.springframework.boot:spring-boot-starter-web')\r\n\ttestCompile('org.springframework.boot:spring-boot-starter-test')\r\n}\r\n```\r\n\r\nI think this could even be taken further by adding support for things like `integrationTest` task which would allow separating the integration tests from the unit tests."},"comment":{"url":"https://api.github.com/repos/spring-projects/spring-boot/issues/comments/294257064","html_url":"https://github.com/spring-projects/spring-boot/issues/8821#issuecomment-294257064","issue_url":"https://api.github.com/repos/spring-projects/spring-boot/issues/8821","id":294257064,"user":{"login":"philwebb","id":519772,"avatar_url":"https://avatars2.githubusercontent.com/u/519772?v=3","gravatar_id":"","url":"https://api.github.com/users/philwebb","html_url":"https://github.com/philwebb","followers_url":"https://api.github.com/users/philwebb/followers","following_url":"https://api.github.com/users/philwebb/following{/other_user}","gists_url":"https://api.github.com/users/philwebb/gists{/gist_id}","starred_url":"https://api.github.com/users/philwebb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/philwebb/subscriptions","organizations_url":"https://api.github.com/users/philwebb/orgs","repos_url":"https://api.github.com/users/philwebb/repos","events_url":"https://api.github.com/users/philwebb/events{/privacy}","received_events_url":"https://api.github.com/users/philwebb/received_events","type":"User","site_admin":false},"created_at":"2017-04-14T23:47:51Z","updated_at":"2017-04-14T23:47:51Z","body":"I'm not too keen to put too go too far down the opinionated route for Gradle. We've been burnt in 1.x by trying to do too much and I don't think we should rush in add more features in 2.x.\r\n\r\nI think Andy's point about \"all or nothing\" and not having a sensible back-off strategy is particularly relevant.\r\n\r\nWith our current 2.x solution it's pretty easy to see what's happening and it's pretty easy to work out what you'd need to do if you didn't want a specific feature. Adding a \"full\" and \"lite\" version of the plugin makes things quite hard to document and explain.\r\n\r\nI'd like to close this one for now and see how things pan out in 2.0. Let's open new issues for any new conventions that we should support (for example the source compatibility suggestion) and take them on one at a time.\r\n\r\nAfter 2.0 is out we should review how easy people are finding the plugin to use. It's going to be easier to add this kind of support later than it is to take it out if we think it's wrong.\r\n\r\n"}}
{"actor":{"display_login":"philwebb"}}