зеркало из https://github.com/golang/dep.git
38 строки
2.2 KiB
Markdown
38 строки
2.2 KiB
Markdown
---
|
|
title: Creating a New Project
|
|
---
|
|
|
|
Once you have [dep installed](installation.md), we need to pick a root directory for our project. This is primarily about picking the right root import path, and corresponding directory beneath `$GOPATH/src`, at which to situate your project. There are four basic possibilities:
|
|
|
|
1. A project that is now or eventually may be shared with or imported by other projects/people. In this case, pick the import path corresponding to the VCS root of its intended network location, e.g., `$GOPATH/src/github.com/golang/dep`.
|
|
2. An entirely local project - one that you have no intention of pushing to a central server (like GitHub). In this case, any subdirectory beneath `$GOPATH/src` will do.
|
|
3. A project that needs to live within a large repository, such as a company monorepo. This may be possible, but gets more complicated. (Unfortunately, no docs on this yet - coming soon!)
|
|
4. Treat the entire GOPATH as a single project, where `$GOPATH/src` is the root. Dep [does not currently support this](https://github.com/golang/dep/issues/417) - it needs a non-empty import path to treat as the root of your project's import namespace.
|
|
|
|
We'll assume the first case, as it's the most common. Create and move into the directory:
|
|
|
|
```bash
|
|
$ mkdir -p $GOPATH/src/github.com/me/example
|
|
$ cd $GOPATH/src/github.com/me/example
|
|
```
|
|
|
|
Now, we'll initialize the project:
|
|
|
|
```bash
|
|
$ dep init
|
|
$ ls
|
|
Gopkg.toml Gopkg.lock vendor/
|
|
```
|
|
|
|
In a new project like this one, both files and the `vendor` directory will be effectively empty.
|
|
|
|
This would also be a good time to set up a version control, such as [git](https://git-scm.com/). While dep in no way requires version control for your project, it can make inspecting the changes made by normal dep operations easier. Plus, it's basically best practice #1 of modern software development!
|
|
|
|
At this point, our project is initialized, and we're ready to start writing code. You can open up a `.go` file in an editor and start hacking away. Or, if you already know some projects you'll need, you can pre-populate your `vendor` directory with them:
|
|
|
|
```bash
|
|
$ dep ensure -add github.com/foo/bar github.com/baz/quux
|
|
```
|
|
|
|
Now you're ready to move on to [Daily Dep](daily-dep.md)!
|